Сумма двух 100-значных чисел - QBasic

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. REM Программа суммирует два числа длиной до 100 знаков
  2. REM Иначе говоря A()+B()=C()
  3. REM Порядок чисел хранится в A(0), B(0), C(0)
  4. REM стандартный вид числа 1234.567 таков 1.234567 (порядок=3)
  5. DEFINT A-C, E, I
  6. DIM a(100)
  7. DIM b(100)
  8. DIM c(100)
  9. CLS
  10. ERASE c ' инициализация массива c()
  11. e=a(0)-b(0)
  12. IF e=0 THEN
  13. c(0)=a(0)
  14. GOTO 11
  15. END IF
  16. REM числа перед сложением выравниваются
  17. REM меньшее число смещается вправо
  18. IF e>0 THEN
  19. c(0)=a(0)
  20. FOR i=100-e TO 1 STEP -1
  21. b(i+e)=b(i)
  22. NEXT i
  23. FOR i=1 TO e
  24. b(i)=0
  25. NEXT i
  26. ELSE
  27. e=-e
  28. c(0)=b(0)
  29. FOR i=100-e TO 1 STEP -1
  30. a(i+e)=a(i)
  31. NEXT i
  32. FOR i=1 TO e
  33. a(i)=0
  34. NEXT i
  35. END IF
  36. 11: ' поразрядное сложение
  37. FOR i=1 TO 100
  38. c(i)=a(i)+b(i)
  39. NEXT i
  40. REM приведение результата к стандартному виду
  41. FOR i=100 TO 2 STEP -1
  42. IF c(i)>9 THEN
  43. c(i)=c(i)-10
  44. c(i-1)=c(i-1)+1
  45. END IF
  46. NEXT i
  47. IF c(1)>9 THEN
  48. c(0)=c(0)+1
  49. FOR i=100 TO 3 STEP -1
  50. c(i)=c(i-1)
  51. NEXT i
  52. c(2)=c(1)-10
  53. c(1)=1
  54. END IF
  55. STOP
  56. END

Решение задачи: «Сумма двух 100-значных чисел»

textual
Листинг программы
  1. '
  2. #Lang "FB"       ' режим FreeBASIC-совместимости
  3. '
  4. Dim As String s1, s2, S
  5. Dim As Integer i, sum, p
  6. ' заданные значения операндов
  7. s1 = "1234567890"
  8. s2 = "999997777744443333222"
  9. '
  10. Do Until Len(s1) = Len(s2) ' выполнять до выравнивание
  11.   If Len(s1) > Len(s2) Then
  12.       s2 = "0" + s2        ' добавить ведущий нуль
  13.   Else
  14.       s1 = "0" + s1        ' добавить ведущий нуль
  15.   End If
  16. Loop
  17. Print s1
  18. Print s2
  19. '
  20. p = 0        ' поразрядное сложение (перенос отсутствует)
  21. For i = Len(s1) To 1 Step -1
  22.    sum = Val(Mid(s1, i, 1)) + Val(Mid(s2, i, 1)) + p
  23.    If sum > 9 Then
  24.       sum = sum - 10
  25.       S = LTrim(Str(sum)) + S
  26.       p = 1  ' перенос есть
  27.   Else
  28.       S = LTrim(Str(sum)) + S
  29.       p = 0  ' переноса нет
  30.   End If
  31. Next i
  32. '
  33. Print
  34. Print S
  35. Sleep

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы