解题思路:
我用的递归
注意事项:
递归的结束条件不能仅仅是
(x==1)return 1;
而应该是
(x==1||x==0)return 1;或者直接是(x==0)return 1;
因为0的阶乘是1;如果只是等于1就返回的话,0的阶乘就没法算;
参考代码:
#include<stdio.h>
int main(){
int N,x;
scanf("%d",&N);
printf("%d",f(N));
return 0;
}
int f(int x){
int y;
if(x==1||x==0)
return 1;
else
y=x*f(x-1);
return y;
}
0.0分
2 人评分
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:806 |
求圆的面积 (C语言代码)浏览:1366 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1261 |
1014题解浏览:524 |
1118(求助_已解决)浏览:351 |
printf基础练习2 (C语言代码)浏览:547 |
Quadratic Equation (C语言代码)浏览:1034 |
C语言程序设计教程(第三版)课后习题12.3 (C语言代码)浏览:587 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:751 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:631 |