我认识到这是一个共同的主题,但我无法在自己的代码中找到我要查找的内容,如果我找不到问题所在,那么所有其他答案都会变得毫无意义。
我必须为查询用户的任何值实现 Collatz 递归,然后返回该数字达到 1 所需的步数(迭代)。
int main(void)
{
int m,n,count;
printf("Enter a value for 'n': ");
scanf("%d",&n);
m = n;
count = 0;
if (m != 1) {
if (m%2 == 0); {
m = m/2;
count++;
}
if (m%2 == 1) {
m = m*3+1;
count++;
}
}
if (m==1)
return count;
printf("The number %d takes %d iterations to reach '1'",n,count);
return 0;
}
任何建议都会很棒。if (m != 1)
我的信念是m
,这段代码(