求大神指导,本人初学 c。
(1)输入一个正整数n; (2)如果n=1则结束;
(3)如果n是奇数,则n变为3n+1,否则n变为n/2;
(4)转入第(2)步。
举一个例子:n=13的时候,经历10步可以达到1。
13 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1
请问10000以内,哪个数变为1需要转化的步骤多
以上是题目,可是我不知道怎么计算循环的次数。以下是我自己写的代码,但是统计不了次数,我不知道该怎么改。
程序代码:#include<stdio.h>
int main()
{
int n,p;
int count=1;
printf("输入一个整数n:");
scanf("%d",&n);
if(n==1)
{
printf("n=%d",n);
}
do
{
switch(p=n%2)
{
case 0:
n=n/2;break;
case 1:
n=3*n+1;break;
}
printf("n=%d",n);
printf("\n");
}
while(n!=1);
}









