#循环输入,每输入一个正整数n(n≤12),输出n1×2×3×...×n的值,当没有任何输入时,结束程序。
解题思路:1,迭代,初始化ans为1,输入一个n,用一个while语句自减n,本次自减将n跟ans相乘当n自减为1的时候跳出循环
代码详解:
#includeint main(){ int n,ans; while(scanf("%d",&n)!=EOF){ n=1;//n的初始化应该在while循环体内,自减循环体外,保证每次循环自减的时候n可以取到1. while(n>1){ ans*=n; n--; } printf("%d",ans); } return 0; }
2,递归,递归实际上是自己调用自身。f(n)=f(n-1)*n,当n=1时,f(1)=1
代码详解:
#includeint factorial(int n){ if(n==1) return 1; else return factorial(n-1)*n; } int main() { int n; while(scanf("%d",&n)!=EOF){ printf("%d",factorial(n)); } return 0; }



