一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。
求n的阶乘n!
1.非递归方法
#include<stdio.h>
int main()
{
int n,i;
unsigned long long factorial = 1;//累积初值赋1,累加赋0
printf("请输入一个整数:");
scanf("%d",&n);
if(n<0)
printf("Error!负数没有阶乘\n");
else
{
for(i=1;i<=n;i++)
factorial*=i;
printf("%d!=%llu\n",n,factorial);
}
return 0;
}
2.递归方法
#include<stdio.h>
long int factorial(int n)
{
if(n>=1)
return n*factorial(n-1);
else
return 1;
}
int main()
{
int n;
printf("请输入一个整数:");
scanf("%d",&n);
if(n<0)
printf("Error!负数没有阶乘\n");
else
printf("%d!=%ld\n",n,factorial(n));
return 0;
}