#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int main()
{
int n;
scanf("%d",&n);
int count=0;
while(n>1)
{
if(n%2==1)
{
n=3*n+1;
}
else
n/=2;
count++;
}
printf("%d",count);
return 0;
}
若输入987654321
输出为1
说明又冒了
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int main()
{
int n;
scanf("%d",&n);
int count=0;
while(n>1)
{
if(n%2==1)
{
n=3*n+1;
n=(double)n/2;
count++;
}
else
n/=2;
count++;
}
printf("%d",count);
printf("time used%.2lf\n",(double)clock()/CLOCKS_PER_SEC);
return 0;
}
如果n为奇数 纳闷3*n+1一定是个偶数 直接除以2 可能稍微缓解 还可以适当加快速度
但注意同时处理后 要多加一次count
对于987654321 输出还是2 说明还是冒了
未完待续——————