Напишите программу в паскале и объясните, как это делается сложить два 15-ти значных целых числа. при этом используют тип integer. т.е. реализовать поэлементное сложение значений двух массивов с переносом разряда.
Const n=15; var a,b,c:array[0..n] of integer; s_a,s_b:string; i:integer; Begin readln(s_a); readln(s_b); while length(s_a)<n do s_a:='0'+s_a; while length(s_b)<n do s_b:='0'+s_b;
for i := n downto 1 do begin a[i]:=strtoint(s_a[i]); b[i]:=strtoint(s_b[i]); c[i]:=c[i]+a[i] + b[i]; c[i-1]:=c[i] div 10; c[i]:=c[i] mod 10; end;
writeln; for i:= 0 to n do write(a[i]); writeln; for i:= 0 to n do write(b[i]); writeln; for i:= 0 to n do write(c[i]); End.
Когда мы копируем рисунок в буфер, то он определенного размера. Создадим второго слона. Для этого надо выполнить все 4 команды: 1,2,3,4. Второй слон стал на 80% меньше первого. Создадим третьего слона. Если мы сейчас снова вставим слона из буфера (команда 3), то вставится первый слон, и команду 4 придется делать 2 раза, чтобы он стал на 80% меньше, чем второй слон. Поэтому для третьего слона нужно выделить второго и опять проделать все 4 команды: 1,2,3,4. Чтобы получить еще 6 слонов, нужно эти команды повторить 6 раз. ответ: В) повторить (1,2,3,4; 6)
var a,b,c:array[0..n] of integer;
s_a,s_b:string;
i:integer;
Begin
readln(s_a);
readln(s_b);
while length(s_a)<n do s_a:='0'+s_a;
while length(s_b)<n do s_b:='0'+s_b;
for i := n downto 1 do begin
a[i]:=strtoint(s_a[i]);
b[i]:=strtoint(s_b[i]);
c[i]:=c[i]+a[i] + b[i];
c[i-1]:=c[i] div 10;
c[i]:=c[i] mod 10;
end;
writeln;
for i:= 0 to n do write(a[i]);
writeln;
for i:= 0 to n do write(b[i]);
writeln;
for i:= 0 to n do write(c[i]);
End.