free pascal高精度计算问题
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/08/08 13:15:37
free pascal高精度计算问题
小学生在学多位数的数值相加时,被告知,相加时,先从低位相加(即从右向左相加),如果在某位数值相加时结果大于10,就向下一位进1,这种进1的操作我们叫“进位”.
你的任务就是统计两个数在相加时最终产生了多少次进位操作,从而帮助他们来判断运算的复杂程度
输入:
两个正整数,长度小于10位
输出:
进位的次数
例子输入:
123 456
555 555
123 594
例子输出:
No carry
operation
3 carry operations
1 carry operation
小学生在学多位数的数值相加时,被告知,相加时,先从低位相加(即从右向左相加),如果在某位数值相加时结果大于10,就向下一位进1,这种进1的操作我们叫“进位”.
你的任务就是统计两个数在相加时最终产生了多少次进位操作,从而帮助他们来判断运算的复杂程度
输入:
两个正整数,长度小于10位
输出:
进位的次数
例子输入:
123 456
555 555
123 594
例子输出:
No carry
operation
3 carry operations
1 carry operation
![free pascal高精度计算问题](/uploads/image/z/13580183-47-3.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)
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~~
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~~
free pascal高精度计算问题
free pascal 高精度计算谁有讲解给一下
free pascal高精度加法计算,求高手看看程序!追加悬赏50!
free pascal问题
Free Pascal 如何求出一个数组中的有效元素个数 难道高精度计算一般要转成字符型来求数的长度?
pascal高精度幂Description对数值很大、精度很高的数进行高精度计算是一类十分常见的问题.比如,对国债进行计
高精度阶乘(pascal)
一个很简单的free pascal问题
Free Pascal
pascal 高精度乘法压位
pascal高精度快速幂程序
free pascal如何计算圆的周长与面积