pascal编程问题(阶乘结果后零的个数)的简介

正在使用人数

话题:pascal编程问题(阶乘结果后的个数)问题详情:描述对于一个正整数n,n的阶乘(记作n!)=1*2*3**n,试编程回答:你这个题应当求出所有5的倍数所含的5的因子的个数。若限定n必须大于5可使用repeat;若没有先定,最好使用while。m=5repeatk=m;while(kmod5=0)dobegini。

小知识:pascal编程问题(阶乘结果后零的个数)

pascal编程问题(阶乘结果后零的个数)

时间:2016-03-14 16:07    来源: 我爱IT技术网    编辑:佚名

话题:pascal编程问题(阶乘结果后的个数)

问题详情:描述 对于一个正整数n,n的阶乘(记作n!)=1*2*3**n,试编程

回答:你这个题应当求出所有5的倍数所含的5的因子的个数。若限定n必须大于5可使用repeat;若没有先定,最好使用while。m=5repeat k=m; while (k mod 5=0) do begin i:=i+1; k=k div 5; end m:=m+5until mgt;n;

话题:pascal阶乘后面第一位非数字,我写了如下程序,请问哪

回答:举个例子,算15!的时候,14!=121200 而算到这是你的s只是保留了2,然而在乘15的时候正确的是1306436000,非数为""而你算得2*15=30,非数为3,之后就错了

参考回答:你的程序主体没错,你把write(s)改成writeln(s)试一下,可能是不符合题目要求

话题:Pascal语言 阶乘问题算法

问题详情:详细过程全部Ctrl+c然后Ctrl+v发给我。谢谢、

回答:program ex12;const z=16206;var a:array[1..z]of longint; n,j,i,k,l,s:longint;begin readln(n); s:=1; l:=1; a[1]:=1; for i:=2 to n do begin writeln('已完成: ',i/n*100:3:2,'%'); while a[s]=0 do s:=s+1; for j:=s to l do a[j]:=a[j]*i; for k:=s to l do if a[k]gt; then begin a[k+1]:=a[k+1]+a[k]div 100; a[k]:=a[k]mod 100; end; if a[k+1]lt;gt;0 then l:=l+1; end; assign(output,'out.txt'); rewrite(output); write(n,'!='); for j:=l downto 1 do write(a[j]); close(output);end. your classmate 伤言午X cj 自己修改一下,可能有错,n年前的版本了

参考回答:program jiecheng; var m,i:shortint; n:longint; begin readln(m); n:=1; for i:=2 to m do n:=i*n; writeln(n); end. 用递归算法:

话题:请问pascal语言

回答:先给你个算高精度阶乘的 var a:array [1..1000000] of longint; b,c,i,j,x,y:longint; begin assign(input,'jc.in'); assign(output,'jc.out'); reset(input); rewrite(output); fillchar(a,sizeof(a),0); j:=1; a[1]:=1; readln(c); for i:=2 to c do begin x:=0; for b:=1 to j do begin a[b]:=a[b]*i+x; x:=a[b] div 10000; a[b]:=a[b] mod 10000; end; while x0 do begin j:=j+1; a[j]:=x mod 10000; x:=x div 10000; end; end; write(c,'!='); write(a[j]); if a[j]

参考回答:用累乘器啊。。。。

话题:PASCAL程序求解(输入一个数求阶乘

问题详情:输入一个自然数 n ,求出n的阶乘(1*2*3*4*5**n);要求使用

回答:你的程序写得非常好,时间效率是O(n)的。但可惜,你的程序求的是1!+2!+3!++n!,而题目求的是n! 如果是求前者,把s赋值为1,如果n=1的话特殊处理一下就可以了。 如果是求n!,就把s*(s+i)变成s*i program jiecheng; VAR s,i,n:integer; begin s:=1; readln(n); if n1 then FOR i:=1 to n do s:=s*(s+i); writeln(s); readln; end.

参考回答:program jiecheng; VAR s,i,n:integer; begin s:=1; readln(n); FOR i:=0 to n-1 do s:=s*(s+i); writeln(s); readln; end.

话题:PASCAL

问题详情:不要像我这样! i:=1; s:=0; while i=n do begin while p mod 5=0 do b

回答:var a,b,c:longint;begin readln(a); b:=5;c:=0; while (b=a) do begin c:=c+a div b; b:=b*5; end; writeln(c);end.解释:对于1到A里面5的倍数,一定可以提供一个0但是例如25,125可以提供多个0的怎么算呢?很简单,当做把所有含有一个5的除掉,然后再按照有多少个5去计算就可以了。

参考回答:program zero_of_fact_n; var a,c:longint; begin readln(a); c:=0; while (a0) do begin a:=a div 5; {比a小的5的倍数个数} c:=c+a; en

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)

猜你喜欢:

与“pascal编程问题(阶乘结果后零的个数)”相关的热门小知识: