free pascal高精度计算问题小学生在学多位数的数值相加时,被告知,相加时,先从低位相加(即从右向左相加),如果在某位数值相加时结果大于10,就向下一位进1,这种进1的操作我们叫“进位”. 你的
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/03 11:41:27
![free pascal高精度计算问题小学生在学多位数的数值相加时,被告知,相加时,先从低位相加(即从右向左相加),如果在某位数值相加时结果大于10,就向下一位进1,这种进1的操作我们叫“进位”. 你的](/uploads/image/z/6844755-3-5.jpg?t=free+pascal%E9%AB%98%E7%B2%BE%E5%BA%A6%E8%AE%A1%E7%AE%97%E9%97%AE%E9%A2%98%E5%B0%8F%E5%AD%A6%E7%94%9F%E5%9C%A8%E5%AD%A6%E5%A4%9A%E4%BD%8D%E6%95%B0%E7%9A%84%E6%95%B0%E5%80%BC%E7%9B%B8%E5%8A%A0%E6%97%B6%2C%E8%A2%AB%E5%91%8A%E7%9F%A5%2C%E7%9B%B8%E5%8A%A0%E6%97%B6%2C%E5%85%88%E4%BB%8E%E4%BD%8E%E4%BD%8D%E7%9B%B8%E5%8A%A0%28%E5%8D%B3%E4%BB%8E%E5%8F%B3%E5%90%91%E5%B7%A6%E7%9B%B8%E5%8A%A0%29%2C%E5%A6%82%E6%9E%9C%E5%9C%A8%E6%9F%90%E4%BD%8D%E6%95%B0%E5%80%BC%E7%9B%B8%E5%8A%A0%E6%97%B6%E7%BB%93%E6%9E%9C%E5%A4%A7%E4%BA%8E10%2C%E5%B0%B1%E5%90%91%E4%B8%8B%E4%B8%80%E4%BD%8D%E8%BF%9B1%2C%E8%BF%99%E7%A7%8D%E8%BF%9B1%E7%9A%84%E6%93%8D%E4%BD%9C%E6%88%91%E4%BB%AC%E5%8F%AB%E2%80%9C%E8%BF%9B%E4%BD%8D%E2%80%9D.+%E4%BD%A0%E7%9A%84)
free pascal高精度计算问题小学生在学多位数的数值相加时,被告知,相加时,先从低位相加(即从右向左相加),如果在某位数值相加时结果大于10,就向下一位进1,这种进1的操作我们叫“进位”. 你的
free pascal高精度计算问题
小学生在学多位数的数值相加时,被告知,相加时,先从低位相加(即从右向左相加),如果在某位数值相加时结果大于10,就向下一位进1,这种进1的操作我们叫“进位”.
你的任务就是统计两个数在相加时最终产生了多少次进位操作,从而帮助他们来判断运算的复杂程度
输入:
两个正整数,长度小于10位
输出:
进位的次数
例子输入:
123 456
555 555
123 594
例子输出:
No carry
operation
3 carry operations
1 carry operation
free pascal高精度计算问题小学生在学多位数的数值相加时,被告知,相加时,先从低位相加(即从右向左相加),如果在某位数值相加时结果大于10,就向下一位进1,这种进1的操作我们叫“进位”. 你的
var a,b:array [1..10] of integer;
la,lb,ans:integer;
m,n:int64;
procedure init;
begin
readln(m,n);
la:=0; lb:=0; ans:=0;
while m>=10 do
begin
inc(la); a[la]:=m mod 10; m:=m div 10;
end;
inc(la); a[la]:=m;
while n>=10 do
begin
inc(lb); b[lb]:=n mod 10; n:=n div 10;
end;
inc(lb); b[lb]:=n;
end;
procedure work;
var i,k,x,l:integer;
begin
if la>lb then l:=la else l:=lb;
k:=0;
for i:=1 to l do
begin
x:=k+a[i]+b[i];
k:=x div 10;
if k>=1 then inc(ans);
end;
end;
procedure outln;
begin
case ans of
0:writeln('No carry operation');
1:writeln('1 carry operation');
else writeln(ans,' carry operations');
end;
end;
Begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
while not eof do
begin
init;
work;
outln;
end;
close(input); close(output);
End.
//首先得纠正你一个错误:free pascal是指编译器,pascal是指语言,概念不要混淆.
//然后,我觉得这道题还是比较容易的,即使你是初学者,只要耐心点,完全可以独立完成.学pascal的话尽量少借用外力.
//最后,祝你学好pascal~~