当前位置: 代码迷 >> 综合 >> 算法竞赛入门经典的java实现之3n+1问题-Demo05.java
  详细解决方案

算法竞赛入门经典的java实现之3n+1问题-Demo05.java

热度:27   发布时间:2023-10-27 06:23:47.0

猜想:对于任意大于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);}
}