Сложить два 20-ти значных целых числа. При этом использовать тип %
Категория: Basic
2011-11-11 16:26:09
Каждую цифру обоих чисел заносим в массивы mas1 и mas2. Проходим по массивам от конца к началу и складываем циферки: mas1(20)+mas2(20). Если получилось меньше 10 - то в mas3 попадает сумма цифр и движемся к следующей паре цифр, а если получилось больше 10, то в mas3 попадает последняя цифра суммы, а первая перескакивает в следующий разряд и добавится к следующей сумме. И так постепенно дойдём до первых цифр. В итоге в mas3 будут все цифры суммы.
code: #basic
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
Поделиться: