关于C语言的递归问题
大家帮忙看下这段代码为什么不对?不能执行,不能调试,递归实现 N*(N - 1)*(N - 2)...*2*1
- C/C++ code
#include<stdio.h>int fuck(int n){ int sum = 1; if(n == 1) { sum = sum * n; } fuck(--n); return sum;}int main(){ int n = 2; int sum = 0; sum = fuck(n); printf("%d",sum); return 0;}
[解决办法]
凡是递归函数都必须找到一个出口,至底向上返回。而你的fuck函数显然没有返回。这样下去,我觉得你的电脑应该不能一直持续fuck下去的。
- C/C++ code
int fuck(int n){ if(n == 1) { return 1; } return n*fuck(--n);}