感觉今年题目明显跳水,做到自己都有点不敢相信了,哎~~没有地方可以提交,可能有些比较隐晦的边界条件,姑且不管了,先写上来再说:
第一题:xxx定律:数n,如果是偶数,把n砍掉一半;如果奇数,把3n+ 1砍掉一半,直到数变为1为止。测试包含多个用例,当数为0时结束。输出需要经过几步将n变到1;
Input:
3
1
0
Output:
5
0
#include <iostream>
using namespace std;
int count(int n)
{
int num=0;
while(n!=1)
{
if(n%2==0)n/=2,num++;
else n=(3*n+1)/2,num++;
}
return num;
}
int main()
{
int n;
while(cin>>n&&n)
cout<<count(n)<<endl;
return 0;
}