小编Ady*_*Ady的帖子

UVa 3n + 1案例递归堆栈溢出

我试图解决这个第一个挑战,但我卡住了,我喜欢快速程序,所以我决定使用递归方法而不是迭代

不幸的是,当输入是一个大整数(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)

c recursion

2
推荐指数
1
解决办法
627
查看次数

标签 统计

c ×1

recursion ×1