感覺今年題目明顯跳水,做到自己都有點不敢相信了,哎~~沒有地方可以提交,可能有些比較隱晦的邊界條件,姑且不管了,先寫上來再說:
第一題: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;
}