N! 问题
#include<stdio.h>main()
{
int i,k;
long a=1;
printf("n!:");
scanf("%d",&k);
for(i=0;i<k;i++)
{
for(k=k;k>0;k--)
{
a*=k;
}
}
printf("%d\n",a);
getch();
}
代码在运行到 7!还是8!以后的时候开始出现错误,希望高人指点
就一个:
for(i=1;i<=k;i++)
{
a*=i;
}
printf("k!=%ld\n",a);
谢谢!
但是我发现我问题在哪了
是在我的输出,%D范围太小,当到8!是出现溢出。所以老出错
谢谢,用你的方法可以,用我的方法也可以。
你的比较U。
谢谢!
但是我发现我问题在哪了
是在我的输出,%D范围太小,当到8!是出现溢出。所以老出错
谢谢,用你的方法可以,用我的方法也可以。
你的比较U。
整数范围的话8!还不至于会溢出的
好象是13才开始溢出吧 如果没有记错的话
整数范围的话8!还不至于会溢出的
好象是13才开始溢出吧 如果没有记错的话
8!==40320
[此贴子已经被作者于2006-9-17 21:36:28编辑过]