`
vcdemon
  • 浏览: 20116 次
社区版块
存档分类
最新评论
  • djx410249: 简单的自己想了几个数字测试了下,发现这个数会在经过几次跳动之后 ...
    3n+1
  • I白I: 怎么回事,好多字都卡在外面了 不显示。。。还要查看源代码看内容 ...
    3n+1

3n+1

    博客分类:
  • java
阅读更多
题目详情

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

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

输入格式:

多组数据,每行一个整数0<n<=100000

输出格式:

每行一个数,表示结果。

 

 

答题说明

输入样例

1

3

输出样例:

0

5

 

 

import java.util.Scanner;

public class TestThree {
    public static int Test(int n) {
        int count=0;
        if (n==1) {
            return count;
        }
        
        if (n%2==0) {
            count++;
            count=count+Test(n/2);
        }else {
            count++;
            count=Test((3*n+1)/2)+count;
        }
        return count;
    }
    
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while (true) {
            int n=scanner.nextInt();
            System.out.println(Test(n));
        }
    }
}

 

0
0
分享到:
评论
2 楼 djx410249 2014-06-13  
简单的自己想了几个数字测试了下,发现这个数会在经过几次跳动之后变成5  
然后成为16  --》8 --》4--》2--》1  确实挺奇怪
1 楼 I白I 2014-06-13  
怎么回事,好多字都卡在外面了 不显示。。。还要查看源代码看内容

相关推荐

    3n+1问题 C语言实现

    ### 3N+1问题与C语言实现 #### 一、3N+1问题简介 3N+1问题,也称为Collatz猜想或Syracuse问题,是一个经典的数学问题,至今未被完全解决。该问题的核心思想是:对任意一个正整数n进行以下操作: 1. 如果n为偶数,...

    POJ1207-The 3n + 1 problem

    本题目的核心是解决著名的“Collatz Conjecture”问题,也被称为“3n+1猜想”。 3n+1猜想是由Lothar Collatz于1937年提出的,至今未被证明或否定。该猜想的基本规则是:对于任意正整数n,如果n为偶数,则将其除以2...

    Uva 100(The 3n+1 problem) c 代码

    Uva 100 ,问题是The 3n+1 probelm ,可以ac的代码

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

    PAT 1001. 害死人不偿命的(3n+1)猜想 C实现

    3n+1问题java源码

    如果 n 是奇数,把它乘 3 加1。 用新得到的值重复上述步骤,直到 n = 1 时停止。例如,n = 22 时该算法生成的序列是: 22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1 人们猜想(没有得到证明)对于...

    100 - The 3n + 1 problem.c

    UVA 100题答案

    3N+1猜想与3N+3k猜想的等价性及相关性质 (2006年)

    将数论中3N+1猜想推广为3N+3k猜想。得到了3N+1猜想与3N+3k猜想的等价性。得到有关3N+3猜想的一些性质,3N+1猜想的推广、3N+3猜想的一些性质的建立对于研究4K+3型奇数在3N+3猜想压缩迭代中起到简化作用,同时也为3N+1...

    100 3N+1 以空間換時間

    叭啦 叭啦 巴拉 就是ACM100 3N+1 巴拉巴拉巴拉 叭啦 叭啦 巴拉 就是ACM100 3N+1 巴拉巴拉巴拉

    C 代码 通过考虑 简单的 Collatz 3n+1 问题.rar

    《深入解析Collatz 3n+1问题:C与C++实现》 Collatz 3n+1问题,又称Collatz序列或哈塞程序,是一个简单的数学猜想,它涉及到整数序列的操作。这个猜想由Lothar Collatz于1937年提出,至今未被证明或否定。它的规则...

    继续(3n+1)猜想.sln

    继续(3n+1)猜想.sln

    C语言填数程序~~将1至3n+2的自然数填入指定圆中方法2

    从键盘输入一个自然数n,将1至3n+2的自然数填入图2-1的圆框中,使得所有用线段相连的两个数之差的绝对值能产生数列1,2,…,3n+1。

    3nplus1_3n+1_

    C program that accepts the input of a positive integer m from the console and displays all all starting values n from 1 to m in tabular form

    C语言填数程序~~将1至3n+2的自然数填入指定圆中1

    从键盘输入一个自然数n,将1至3n+2的自然数填入图2-1的圆框中,使得所有用线段相连的两个数之差的绝对值能产生数列1,2,…,3n+1。

    Collat​​z:Collat​​z序列或3n + 1问题的蛮力检查

    蛮力检查Collat​​z序列或3n + 1问题。 程序将查找具有最长Collat​​z序列的起始编号,直到指定的上限。 该代码有两种实现。 两者都是多线程的。 collat​​z.cpp使用共享内存库OpenMP,而mpi_collat​​z.cpp使用...

    Collatz-Conjecture:无人能解的最简单数学问题的直观表示。 (3N+1 问题)

    (3N+1 问题) 又名3N+1问题。 臭名昭著的 Collat​​z 猜想说,如果您从任何正整数开始,您将始终以这个循环结束。 结果,在某些时候,最终会出现在4,2,1的循环中。 这是如何运作的? 我建议您观看 Veritasium ...

    C# winform随机生成曲线(免积分下载,文章有演示gif图片),曲线生成算法

    3n+1个控制点 每四个点生成一条曲线 每条曲线分成200小段画出红色曲线 第二种随机曲线生成:随机三次Bezier曲线 3n+1个控制点 每四个点生成一条曲线 第三种随机曲线生成:随机三次B样条曲线 3n+1个控制点 每四个点...

    数列极限的运算法则.doc

    - \(\lim_{n \to \infty} \left(\frac{10n^{10} + 9n^9 + 8n^8 + 7n^7 + 6n^6 + 5n^5 + 4n^4 + 3n^3 + 2n + 1}{11n^{10} + 10n^9 + 9n^8 + 8n^7 + 7n^6 + 6n^5 + 5n^4 + 4n^3 + 3n^2 + 2n + 1}\right)\) ...

    acm竞赛第100题答案

    【ACM竞赛第100题】,也称为"3n+1问题"或"Collatz猜想",是一道在算法竞赛中常见的题目。这个问题由Lothar Collatz于1937年提出,尽管简单易懂,但至今未得到完全解决。本题目的代码是用C++编写的一个解决方案,用于...

Global site tag (gtag.js) - Google Analytics