gpt4 book ai didi

c - 为什么我的3n+1题解法是错误的

转载 作者:行者123 更新时间:2023-11-30 16:01:00 25 4
gpt4 key购买 nike

我最近开始阅读 S. Skiena 所著的《编程挑战》一书,无论你相信与否,我都陷入了第一个问题。

这是问题的链接:3n+1 problem

这是我的代码:

 #include <stdio.h>

long get_cycle(long input){
if (input == 1){
return 1;
}
else{
if (input & 1){
return 2 + get_cycle((3*input+1)>>1);
}
else{
return 1 + get_cycle(input >> 1);
}
}
}

long get_range_cycle(int k, int j){
int i;
int max = 0;
int current_cycle;
int to = k > j ? k : j;
int from = k < j ? k : j;
for (i=from; i<=to; ++i){
current_cycle = get_cycle(i);
if (current_cycle > max){
max = current_cycle;
}
}
return max;
}

int main(){
long p, q;
long re[100][3];
int i = 0;
while (scanf("%ld %ld",&p,&q) == 2){
re[i][0] = p;
re[i][1] = q;
re[i][2] = get_range_cycle(p,q);
++i;
}
int j;
for (j=0; j<i; ++j){
printf("%ld %ld %ld\n",re[j][0],re[j][1],re[j][2]);
}
}

我的代码有什么问题吗?输入输出和sample完全一样,但是提交结果总是运行时错误!

最佳答案

您的代码似乎假设输入文件中最多有 100 行 - 他们正在测试的示例数据可能更大?他们没有明确声明输入数据的最大设置大小。

关于c - 为什么我的3n+1题解法是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7231620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com