输入整数角谷步数 你听说过角谷猜想吗? 任意的正整数,比如 5, 我们从它开始,如下规则计算: 如果是偶数,则除以2,如果是奇数,则乘以3再加1. 如此循环,最终必会得到“1” !输入整数
废话就不多说了,开始。。。
/* 角谷步数 * 你听说过角谷想猜吗? 恣意的正整数,比如 5, 我们从它开始,如下规矩算计: 如果是偶数,则除以2,如果是奇数,则乘以3再加1. 如此循环,终最必会失掉“1” ! 比如 5 的理处程过是: 5 16 8 4 2 1 一个正整数经过多少步才能酿成1, 称为角谷步数。 对于5而言,步数也是5 对于1,步数为0 本题的要求是,从标准输入给定一个整数n(1<n<300)表现角谷步数 求满意这个角谷步数的小最的正整数 例如: 输入: 3 则出输: 8 输入: 4 则出输: 16 输入: 7 则出输: 3 */ import java.util.Scanner; public class 角谷步数 { static int sum = 0; public static void f(int n){ if(n<=1){ return ; } sum++; if(n%2==0){ f(n/2); // 如果是偶数,则除以2 }else{ f(n*3+1); // 如果是奇数,则乘以3再加1 } } public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("输入给定一个整数n(1<n<300)"); int n = scan.nextInt(); int i=0; while(true){ f(++i); // 失掉角谷步数sum if(sum==n){ System.out.println(i); return ; } sum = 0; } } }
运行结果:
输入给定一个整数n(1<n<300) 4 16
文章结束给大家分享下程序员的一些笑话语录: 刹车失灵
有一个物理学家,工程师和一个程序员驾驶着一辆汽车行驶在阿尔卑斯山脉 上,在下山的时候,忽然,汽车的刹车失灵了,汽车无法控制地向下冲去, 眼看前面就是一个悬崖峭壁,但是很幸运的是在这个悬崖的前面有一些小树 让他们的汽车停了下来, 而没有掉下山去。 三个惊魂未定地从车里爬了出来。
物理学家说, “我觉得我们应该建立一个模型来模拟在下山过程中刹车片在高 温情况下失灵的情形”。
工程师说, “我在车的后备厢来有个扳手, 要不我们把车拆开看看到底是什么 原因”。
程序员说,“为什么我们不找个相同的车再来一次以重现这个问题呢?”