问题描述
任给一个正整数n,
如果n为偶数,就将它变为n/2,
如果n为奇数,则将它变为乘3+1 (即3*n+1)
不断重复这样的运算,经过有限步后,一定会得到1.
输入
输入一个正整数n
输出
输出n变成1的步数
样例
输入数据1 :3
输出数据1 :7
正确 AC 代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,cnt;
cin >> n;
while( n!=1 ){
cnt++;
if( n % 2 == 0 ) n = n/2;
else n = n*3 +1;
}
cout << cnt;
return 0;
}
这道题很简单,主要考得是循环结构程序设计。