ZJU 09 複試上機 第一題

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

 

 

第一題: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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章