[Day22]The 3n + 1 problem

上一篇介绍了Palindromes,上一题讲解了如何辨别是不是镜像字或是回文字的题目,只要先辨别出镜像字,接下来再使用StringBuilder内建的反转把字反转过来来依序进行判断就可以了。

今天讲解的题目是The 3n + 1 problem
先附上程序码:

import java.util.;
import static java.lang.System.
;
public class main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
int a=sc.nextInt(),b=sc.nextInt();
int min=Math.min(a,b);
int max=Math.max(a,b);
int c=0;
for(int i=min;i<=max;i++){
int temp=1;
for(int j=i;j!=1;){
if(j%2==0)j=j/2;
else j=j*3+1;
System.out.println(j);
temp++;
}
if(temp>c)c=temp;
}
System.out.println(a+" "+b+" "+c);
}
}
};

EX:22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1(偶数除二基数=3N+1)
题目要我们给两个数字,并找出两个数字范围内,基数就是N=3N+1,偶数就是N/2,直到最後N变成1就可以换下一个了,并记录次数,之後把范围内的每个值都测完,就可以了,之後再输出执行最多次的次数,利用Math.可以找出一开始输入的大跟小数字,把他带入回圈就可以算出来了,最後输出要把题目给的值也一起输出,值则是输出执行最多次的就可以了,其他可以不用理,
今天的讲解就到这里。
明天也是新的题目,会介绍What's Cryptanalysis? ,继续加油!


<<:  [DAY7]制作容器(六)

>>:  DAY7:Kaggle-San Francisco Crime Classification(下)

桦泽紫苑:The power of input

缘起与目标 第 1 天的 exercise,首先帮自己制定目标,由於接下来刚好是周末,我想要思考一个...

力抗暗黑,Azure 资安天使的逆袭

第一次出书新手上路,请多多指教 谢谢第十届我们的Diablo, the rest of the li...

学校体温自动上传爬虫(学习记录)

动机 因为疫情,这学习开始学校要求大家每天都要在九点前到学校网站上传体温,我觉得非常麻烦。 动点,果...

[Day04] 安装 IDE 与 .NET SDK

开发 .NET 程序之前,需要安装两个东西: IDE: 让我们编写程序与 debug .NET SD...

【LeetCode】Monotonic Stack

monotonic :单调,递增或递减 这是一个看起来很简单的资料结构, 拥有 O(N) time ...