Сложить два 20-ти значных целых числа. При этом использовать тип %- Basic(Бейсик)

Каждую цифру обоих чисел заносим в массивы mas1 и mas2. Проходим по массивам от конца к началу и складываем циферки: mas1(20)+mas2(20). Если получилось меньше 10 — то в mas3 попадает сумма цифр и движемся к следующей паре цифр, а если получилось больше 10, то в mas3 попадает последняя цифра суммы, а первая перескакивает в следующий разряд и добавится к следующей сумме. И так постепенно дойдём до первых цифр. В итоге в mas3 будут все цифры суммы.

DIM mas1%(1 TO 20), mas2%(1 TO 20), mas3%(0 TO 20), i%
RANDOMIZE TIMER
CLS
FOR i% = 1 TO 20
mas1%(i%) = INT(RND * 9)
PRINT mas1%(i%); "";
NEXT i%
PRINT
FOR i% = 1 TO 20
mas2%(i%) = INT(RND * 9)
PRINT mas2%(i%); "";
NEXT i%
PRINT
FOR i% = 20 TO 2 STEP -1
IF (mas1%(i%) + mas2%(i%)) > 9 THEN
mas3%(i%) = mas1%(i%) + mas2%(i%) - 10
mas2%(i% - 1) = mas2%(i% - 1) + 1
ELSE
mas3%(i%) = mas1%(i%) + mas2%(i%)
END IF
NEXT i%
FOR i% = 1 TO 1
mas3%(i%) = mas1%(i%) + mas2%(i%)
IF (mas1%(i%) + mas2%(i%)) > 9 THEN
mas3%(i%) = mas1%(i%) + mas2%(i%) - 10
mas3%(0) = 1
END IF
NEXT i%
FOR i% = 0 TO 20
PRINT mas3%(i%); "";
NEXT i%
PRINT
END

Leave a Comment