为了账号安全,请及时绑定邮箱和手机立即绑定

求阶层,!!!!!!!!!!

求阶层,!!!!!!!!!!

C
2016-10-22 22:59:21
求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; }
查看完整回答
反对 回复 2016-10-23
?
狼顾之相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以下的阶乘,最大能做到多少没试过


查看完整回答
反对 回复 2016-10-23
?
望远

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);
	}
}

运行结果:

//img1.sycdn.imooc.com//580c0ba90001638d03110177.jpg

查看完整回答
反对 回复 2016-10-23
  • 3 回答
  • 0 关注
  • 1499 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信