Pascal问题,求大师解答,请用最简洁的方法。

Pascal问题,求大师解答,请用最简洁的方法。
4岁的阿尔和6岁的爱德华是两兄弟,从小就对炼金术很有兴趣。一天,阿尔看到哥哥在算乘法,阿尔看了觉得很新奇,怎么哥哥计算出来的结果后面那么多圈圈,原来这是他们温柔的妈妈安排爱德华做的一道数学题,要他计算从a到b所有整数的乘积。妈妈看到阿尔看得那么入神,也想考验一下阿尔,对阿尔说:“你能数出哥哥计算的结果末尾的0有多少个吗?”,聪明的阿尔把计算结果看了1秒很快就把正确答案告诉妈妈,你也能和阿尔一样聪明吗?输入两个正整数a和b,求a到b之间(包含a、b)所有整数的积末尾有多少个0。
rainfall1 1年前 已收到1个回答 举报

青虻 花朵

共回答了19个问题采纳率:78.9% 举报

var a,b,n:longint;begin readln(a,b); if a>b then begin n:=a; a:=b; b:=n end; n:=0; dec(a); while b>0 do begin inc(n,b div 5); b:=b div 5; end; while a>0 do begin dec(n,a div 5); a:...

1年前 追问

6

rainfall1 举报

5和5这个数据错了、

举报 青虻

原来的程序考虑有漏洞。现已重新编写程序如下:
var a,b,n,m:longint;
function f(x,k:longint):longint;
var n:longint;
begin
n:=0;
while x>0 do
begin inc(n,x div k); x:=x div k end;
f:=n;
end;
begin
readln(a,b);
if a>b then begin n:=a; a:=b; b:=n end;
dec(a);
n:=f(b,5)-f(a,5); m:=f(b,2)-f(a,2);
if nend.

rainfall1 举报

额,可以不用function吗》大师.

举报 青虻

var a,b,n,m,x:longint;
begin
readln(a,b);
if a>b then begin n:=a; a:=b; b:=n end;
dec(a); n:=0; x:=b;
while x>0 do
begin inc(n,x div 5); x:=x div 5 end;
x:=a;
while x>0 do
begin dec(n,x div 5); x:=x div 5 end;
m:=0; x:=b;
while x>0 do
begin inc(m,x div 2); x:=x div 2 end;
x:=a;
while x>0 do
begin dec(m,x div 2); x:=x div 2 end;
if nend.
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 0.161 s. - webmaster@yulucn.com