long fac(int k) //
{
long result=1; //
int i;
for (i=2;i<=k;i++) //
{
result*=i;
}
return result; //
}
void main()
{
int m;
long s; //
do
{
scanf("%d",&m); //
}
while (m<0);
s=fac(m);
printf("%d!=%ld",m,s);
}
頭文件的部分省去了,修改的地方在代碼中用//標出了。
擴展資料:
由於正整數的階乘是壹種連乘運算,而0與任何實數相乘的結果都是0。所以用正整數階乘的定義是無法推廣或推導出0!=1的。即在連乘意義下無法解釋“0!=1”。
給“0!”下定義只是為了相關公式的表述及運算更方便。
百度百科-階乘