求大神指导,本人初学 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); }