题目描述:
问题如下:
(1)输入一个正整数n;
(2)如果n=1则结束;
(3)如果n是奇数,则n变为3n+1,否则n变为n/2;
(4)转入第(2)步。
输入样式:
1 2 3
输出样式:
0
1
7
题目描述:
问题如下:
(1)输入一个正整数n;
(2)如果n=1则结束;
(3)如果n是奇数,则n变为3n+1,否则n变为n/2;
(4)转入第(2)步。
输入样式:
1 2 3
输出样式:
0
1
7
#include
int main()
{
int n;
scanf("%d",&n);
printf("%-4d",n);
while(n!=1)
{
if(n%2!=0) n=3*n+1;
else n=n/2;
printf("%-4d",n);
}
printf("\n");
}
链长的我觉得有问题你可以试试自己改改。
#include
main()
{
int q1,q2,c,d,j=0,i=0,temp;
int max=0;
scanf("%d %d",&q1,&q2);
d=q2-q1;
for(c=0;c<d;c++)
{
temp = temp + c;
while(temp!=0)
{
j++;
if(temp==1)
{
break;
}
if(temp%2==1)
temp=3*q1+1;
else
temp=temp/2;
}
if (max < j)
max = j;
j = 0;
}
printf("链长为%d",max);
}