
真不是作业!
我的问题就是输入987654321(在10^9内),是合法数据,但结果却是意外的!第一次输出为-1332004332,它不大于1,。所以循环终止。
对于这个乘法溢出了,怎么解决?
还得请大侠们出手相助!!
#include<stdio.h>
int main(){
int n, count = 0;
scanf("%d", &n);
while(n > 1) {
if(n % 2 == 1) n = n*3+1;
else n /= 2;
count++;
printf("%d\n",n);
}
printf("%d\n", count);
return 0;
}