PAT乙級1001 害死人不償命的(3n+1)猜想 (java)
阿新 • • 發佈:2019-01-11
卡拉茲(Callatz)猜想:
- 對任何一個自然數n,如果它是偶數,那麼把它砍掉一半;如果它是奇數,那麼把(3n+1)砍掉一半。這樣一直反覆砍下去,最後一定在某一步得到n=1。
輸入
每個測試輸入包含1個測試用例,給出一個不超過1000的自然數n的值。
輸出
輸出從n計算到1需要的步數。
輸入樣例
3
輸出樣例
5
原始碼
import java.util.Scanner;
public class Main{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int num = in.nextInt();
int count = 0;
if(num <= 1000)
{
while(num !=1)
{
if(num % 2 == 0)
{
num = num/2;
count++;
}
else
{
num = (num * 3 + 1)/2;
count++;
}
}
}
System.out.print(count);
}
}
注意事項
- 這裡無需對輸入的數進行範圍限制,測試點都小於等於1000,加上也無錯