题目描述
思路
首先对于给定的一个数,要判断它的奇偶性。假设这个数是n,用count记录步数
1.偶数,n/=2;count++
2.奇数,(3*n+1)/2赋给n,count++;
循环一直到n为1.最后输出.
代码实现
int f(int n) { int count = 0; while (n!=1)//是否为1 { if (n % 2 == 0)//偶 { n /= 2; count++; } else//奇 { n = (3 * n + 1) / 2; count++; } } return count;//步数 } int main() { int n; scanf("%d", &n); printf("%d\n", f(n)); return 0; }