我试图解决这个第一个挑战,但我卡住了,我喜欢快速程序,所以我决定使用递归方法而不是迭代
不幸的是,当输入是一个大整数(100000>输入> 1000000)时,它经常崩溃
所以我调试它,它显示堆栈溢出错误
请帮助我,我不知道该怎么做,香港专业教育学院尝试将数据类型更改为unsigned long,unsigned int等,但它们都没有工作
这是我的代码,即时通讯使用ANSI C
#include "stdio.h"
int cek(int n) {
return n % 2;
}
int fung(int n,int c) {
if (n == 1) {
return c;
}
if (!cek(n)) {
return fung(n/2,++c);
}
else {
return fung((n*3)+1,++c);
}
}
int comp(int i,int j,int tmp) {
int temp;
if (i == j)
return tmp;
temp = fung(i,1);
if (temp > tmp)
return comp(++i,j,temp);
else
return comp(++i,j,tmp);
}
int main() {
int i,j,tmp;
while (scanf("%d %d",&i,&j)) …Run Code Online (Sandbox Code Playgroud)