#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n!=1)
{
if(n%2!=0)
{
printf("%d3+1=%d\n",n,n3+1);
n=n*3+1;
}
if(n%2==0)
{
printf("%d/2=%d\n",n,n/2);
n=n/2;
}
}
printf("End");
return 0;
}
这样呢
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n>1)
{
if(n%2==0)
{
printf("%d/2=",n);
n/=2;
printf("%d\n",n);
}
else
{
printf("%d*3+1=",n);
n=n*3+1;
printf("%d\n",n);
}
}
printf("End");
return 0;
}
本地测试一下,看看是不是死循环所以一直在输出
修改如下,供参考:
if (n % 2 != 0)
{
printf("%d*3+1=%d\n", n, n*3 + 1);
n = n * 3 + 1;
}
else //if (n % 2 == 0)
{
printf("%d/2=%d\n", n, n / 2);
n = n / 2;
}