PAT乙級真題及び訓練集-1001


1001.人を殺しても命を償わない(3 n+1)推測(15)
カラズ(Callatz)の推測:
任意の自然数nに対して、もしそれが偶数であれば、それを半分切ります.奇数であれば(3 n+1)を半分切ります.こうやって切り落としを繰り返し、最後には必ずある一歩でn=1を得る.カラズは1950年の世界数学者大会でこの推測を発表した.当時、エール大学の教師と学生が一斉に動員され、馬鹿みたいで無邪気な命題を証明しようとしたが、結局学生たちは学業に専念せず、ひたすら証明しただけだったという.(3 n+1)陰謀だという人もいる.カラズは米国の数学界の教育と科学研究の進展を遅らせようとしたのだ.
私たちの今日のテーマはカラズの推測を証明するのではなく、与えられたいずれかの1000を超えない正の整数nに対して、簡単に数えて、n=1を得るにはどのくらいのステップ(何回切る)が必要ですか?
入力フォーマット:各テスト入力には、自然数nの値を与える1つのテスト例が含まれます.
出力フォーマット:nから1まで計算するステップ数を出力します.
サンプルを入力:
3

出力サンプル:
5
import java.util.*;
public class Main{
 public static void main(String[] args) {
    int count=0;
    Scanner s= new Scanner(System.in);
    int n=s.nextInt();
    while (n!=1) {
      if (n%2 == 0) {
      	n=n/2;
      }else {
      	n=(3*n+1)/2;
      }
      count++;
    }
    System.out.println(count);
  }
}