Даны два длинных целых числа (256+) требуется сложить эти числа - Pascal ABC
Формулировка задачи:
Даны два длинных целых числа (256+ символов) требуется сложить эти числа,и подсчитать что получилось
Решение задачи: «Даны два длинных целых числа (256+) требуется сложить эти числа»
textual
Листинг программы
var a,b,c:array[1..10000] of byte; na,nb,i,j,n,p:integer; begin randomize; write('Количество знаков числа A na='); readln(na); write('Количество знаков числа B nb='); readln(nb); writeln('Число A:'); a[1]:=random(9)+1; for i:=2 to na do a[i]:=random(10); for i:=1 to na do write(a[i]); writeln; writeln('Число B:'); b[1]:=random(9)+1; for i:=2 to nb do b[i]:=random(10); for i:=1 to nb do write(b[i]); writeln; if na>nb then begin n:=na; for i:=1 to na-nb do begin nb:=nb+1; for j:=nb downto 2 do b[j]:=b[j-1]; b[1]:=0; end; end else if nb>na then begin n:=nb; for i:=1 to nb-na do begin na:=na+1; for j:=na downto 2 do a[j]:=a[j-1]; a[1]:=0; end; end else if nb=na then n:=na; p:=0; for i:=n downto 1 do begin c[i]:=a[i]+b[i]+p; if (c[i]>9)and(i>1) then begin c[i]:=c[i] mod 10; p:=1; end else p:=0; end; if c[1]>9 then begin c[1]:=c[1] mod 10; n:=n+1; for j:=n downto 2 do c[j]:=c[j-1]; c[1]:=1; end; writeln('Число C:'); for i:=1 to n do write(c[i]); end.
Объяснение кода листинга программы
- Создаются две переменные типа array[1..10000] of byte: a и b.
- Задаются две переменные типа integer: na и nb.
- Числа a и b заполняются случайными значениями от 0 до 9.
- Если количество знаков числа A (na) больше количества знаков числа B (nb), то:
- увеличивается значение переменной n до na.
- для каждого i от 1 до na-nb: значение b[i] обновляется как b[i-1].
- значение b[1] устанавливается в 0.
- Если количество знаков числа B (nb) больше количества знаков числа A (na), то:
- увеличивается значение переменной n до nb.
- для каждого i от 1 до nb-na: значение a[i] обновляется как a[i-1].
- значение a[1] устанавливается в 0.
- Если количество знаков числа B (nb) равно количеству знаков числа A (na), то:
- увеличивается значение переменной n до nb.
- для каждого i от 1 до nb: значение a[i] обновляется как a[i-1].
- значение a[1] устанавливается в 0.
- В цикле суммируются числа a[i], b[i] и p для каждого i от 1 до n.
- Если сумма a[i], b[i] и p для i=1 больше 9, то:
- число a[i] приводится к десятичной форме с помощью операции mod 10.
- значение p устанавливается в 1.
- увеличивается значение переменной n на 1.
- для каждого j от n до 2: значение c[j] обновляется как c[j-1].
- значение c[1] устанавливается в 1.
- Выводится число c[1].
- Если значение c[1] больше 9, то:
- число c[1] приводится к десятичной форме с помощью операции mod 10.
- увеличивается значение переменной n на 1.
- для каждого j от n до 2: значение c[j] обновляется как c[j-1].
- значение c[1] устанавливается в 1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д