求阶层,!!!!!!!!!!
求N!,N小于等于10000,输入一个整数n,遇到-1结束。输出,每行一个整数,对应n的运算结果。
3回答
-
笟
#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
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以下的阶乘,最大能做到多少没试过
-
望远
#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);
}
}运行结果: