解题思路:
我用的递归
注意事项:
递归的结束条件不能仅仅是
(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语言代码)浏览:1525 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:946 |
C语言训练-素数问题 (C语言代码)浏览:1661 |
九宫重排 (C++代码)浏览:2160 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:660 |
永远的丰碑 (C语言代码)浏览:525 |
格式化数据输出 (C语言代码)浏览:822 |
良心推荐——>题解1049:C语言程序设计教程(第三版)课后习题11.1 (C语言描述——简单明了,时间复杂度低)浏览:1287 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:675 |
杨辉三角 (C语言代码)浏览:679 |