题目:求n!。
1.for循环
#include <stdio.h>
int fact(int n);
int main()
{ int n,f;
scanf("%d",&n);
f=fact(n);
printf("%d\n",f);
return 0;
}
int fact(int n)
{ int i,fa=1;
for(i=1;i<=n;i++)
fa=fa*i;
return fa;
}
2.递归法
#include <stdio.h>
int fact(int n);
int main()
{ int n;
printf("Enter n:");
scanf("%d",&n);
if(n>=0)
printf("%d!=%d\n",n,fact(n));
else
printf("input data error!\n");
return 0;
}
int fact(int n)//每次调用使用不同的参数
{ int t;//每次调用都会为变量t开辟不同的内存空间
if(n==0||n==1)
t=1;
else
t=n*fact(n-1);//每次运行到这里,就会用n-1作为参数再调用一次本函数,这里是调用点
return t;//只有在上一条语句调用的所有过程全部结束后,才运行到此处
}