JAVA-1001. 害死人不偿命的(3n+1)猜想

简介: 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。

卡拉兹(Callatz)猜想:

对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……

我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过1000的正整数n,简单地数一下,需要多少步(砍几下)才能得到n=1?

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。

输出格式:输出从n计算到1需要的步数。

输入样例: 3

import java.util.Scanner;

public class Main{
  public static void main(String[] args) {
      int count = 0;
        Scanner sc = new Scanner(System.in);
        double n = sc.nextInt();
        while(n != 1) {
          if (n % 2 == 0) {  
            n /= 2;
          } else {
            n = (3*n+1) / 2;
          }
          count++;
        }
        System.out.println(count);
}
}
目录
相关文章
|
10月前
|
XML Java 数据库连接
Java知识面试题复习(五)JavaIO流和反射
Java知识面试题复习(五)JavaIO流和反射
83 1
|
算法
java202303java学习笔记第二十五天-两道算法题1
java202303java学习笔记第二十五天-两道算法题1
90 0
|
存储 Java 测试技术
【java】前八章:快速回忆(一)
【java】前八章:快速回忆
118 0
|
Java
【java】前八章:快速回忆(三)
【java】前八章:快速回忆
106 0
|
存储 Java API
【java】前八章:快速回忆(二)
【java】前八章:快速回忆
96 0
|
消息中间件 算法 JavaScript
从 Java 8 升级到 Java 17 全过程,贼特么坑!
从 Java 8 升级到 Java 17 全过程,贼特么坑!
|
存储 分布式计算 安全
我与java的第一次相识
我与java的第一次相识
140 0
我与java的第一次相识
|
存储 Java
大数计算题—Java选手的做法
大数计算题—Java选手的做法
153 0
大数计算题—Java选手的做法
|
设计模式 前端开发 算法
恕我直言,在座的各位根本写不好Java!
其实,本不想把标题写的那么恐怖,只是发现很多人干了几年 Java 以后,都自认为是一个不错的 Java 程序员了,可以拿着上万的工资都处宣扬自己了,写这篇文章的目的并不是嘲讽和我一样做 Java 的同行们,只是希望读者看到此篇文章后,可以和我一样,心平气和的争取做一个优秀的程序员。
125 0
恕我直言,在座的各位根本写不好Java!
|
安全 Java 编译器
Java 中的 T,E,K,V, 别傻傻分不清楚!
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。
Java 中的 T,E,K,V, 别傻傻分不清楚!

相关实验场景

更多