猜想:对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半。经过若干次这样的变换,一定为使n变为1。例如3->10->5->16->8->4->2->1。
输入n,输出变换的次数。n<=10的九次方。
样例输入:3
样例输出:7
下面贴出代码:
package cn.zimo.algorithm;import java.util.Scanner;/*** 3n+1问题* @author 子墨* @date 2018年4月26日 上午11:26:29*/
public class Demo05 {public static void main(String[] args) {long n,count=0;Scanner scan=new Scanner(System.in);n=scan.nextInt();while(n>1) {if(n%2==1) {n=n*3+1;}else {n=n/2;}//System.out.println("n="+n);count++;}System.out.println(count);}
}