第一种,利用递归函数,进行值的阶乘。
int fac(int n)
{
if(n<1)//判断输入的值,小于1则直接返回
return n;
if(n>1)
return n*fac(n-1);//递归函数,函数内部调用自身,即n*(n-1)*(n-2)……
} //直到下一次传入fac的值不大于1,进行返回
int main()
{
int input=0;
printf("输入值:");
scanf("%d",&input);
int i=fac(input);//设计一个递归函数类型,进行运算
printf("%d!=%d\n",input,i);//输出input的阶乘
return 0;
}
第二种,利用迭代法(while循环)进行求解。
int main()
{
int input=0;
int result=1;
printf("输入值:");
scanf("%d",&input);
int n=input;//由于要输出input的值,而直接用input的话,在19行里会把input的值变为1
if(n<=1)//判断输入的值,小于等于1直接输出
{
result=n;
}
else
{
while(n>1)//循环运算,n*(n-1)……
{
result*=n;
n--;
}
}
printf("%d!=%d\n",input,result);//输出值
return 0;
}
自我反思,敬请谅解。