xxx定律 (1031)

題目描述:                       

    對於一個數n,如果是偶數,就把n砍掉一半;如果是奇數,把n變成 3*n+ 1後砍掉一半,直到該數變爲1爲止。
    請計算需要經過幾步才能將n變到1,具體可見樣例。
輸入:                       
    測試包含多個用例,每個用例包含一個整數n,當n爲0 時表示輸入結束。(1<=n<=10000)
輸出:                       
    對於每組測試用例請輸出一個數,表示需要經過的步數,每組輸出佔一行。
樣例輸入:                       
3
1
0
樣例輸出:                       
5
0

============================================

#include<stdio.h>
void main()
{
	int n,t;
	while(scanf("%d",&n)!=EOF && n!=0)
	{
		t=0;
		while(n!=1)
		{
			if(n%2==0)
				n=n/2;
	    	        else
				n=(3*n+1)/2;
			t++;
		}
		printf("%d\n",t);

	}
}

============================================

挺簡單的一題~

如有不同意見,歡迎交流!

============================================

來源:                        

2009年浙江大學計算機及軟件工程研究生機試真題                           

 

 

 

 

 

 

 

發佈了29 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章