求N!,N小于等于10000,输入一个整数n,遇到-1结束。输出,每行一个整数,对应n的运算结果。
3 回答
笟
TA贡献2条经验 获得超2个赞
#include <stdio.h>
main ()
{
int a,b,c;
while (scanf("%d",&a)&&a!=-1)
{
c=1;
for (b=1;b<=a;b++)
{
c=c*b%10007;
}
printf("%d\n",c);
}
return 0;
}
狼顾之相1995
TA贡献81条经验 获得超22个赞
i,j,n,w:longint;
a:array[1..10000] of integer;
procedure fact(k:longint);
var
x,i:longint;
begin
x:=0;
for i:=1 to w do
begin
a[i]:=a[i]*k+x;
x:=a[i] div 10;
a[i]:=a[i] mod 10;
end;
while x>0 do
begin
w:=w+1;
a[w]:=x mod 10;
x:=x div 10;
end;
end;
begin
a[1]:=1;
w:=1;
readln(n);
for i:=1 to n do fact(i);
for j:=w downto 1 do write(a[j]);
writeln;
end.
这个程序可以做1000以下的阶乘,最大能做到多少没试过
望远
TA贡献1017条经验 获得超1032个赞
#include<stdio.h> long getSum(int n){ //递归调用 if(n==1) { return 1; } else return n*getSum(n-1); } void main() { int n; long sum=0; printf("请输入一个整数:"); scanf("%d",&n); while(n!=-1&&n<10000) { sum=getSum(n); printf("%d!=%ld\n",n,sum); printf("请输入一个整数:"); scanf("%d",&n); } }
运行结果:
- 3 回答
- 0 关注
- 1499 浏览
添加回答
举报
0/150
提交
取消