如下是我的代码: import java.util.Scanner; public class pta { public static void main(String[] args){ Scanner scanner=new Scanner(System.in); int num=scanner.nextInt(); int sum=0; do{ while (num%2==0){ num=num/2; sum++; }while (num%2!=0){ num=(num*3+1)/2; sum++; } }while (num!=1); System.out.println(sum); } }
然后答案是这样的:
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
int num=scanner.nextInt();
int sum=0;
while (num!=1){
if (num%2==0){
num=num/2;
sum++;
}else if (num%2!=0){
num=(num*3+1)/2;
sum++;
}
}
System.out.println(sum);
}
}
我的运行不了,菜鸟求问为什么
我很无语
一下子用了3个while,服了,你在用循环之前就要考虑写的会不会陷入死循环,有没有必要用这么多个while
举个例子,num输入1,会死循环了,3个while轮流走个遍。。。。
我知道用太多while不合适。。输入1确实会死循环但是输入其他数字呢?为啥也跑不了?
写代码 花里胡哨了不好,
像你这句说的,你明知道你用了很多while,其实你想写的程序很简单,而你非得搞得复杂。所以别陷入死胡同,在某些时候代码是活的,人也是活的
一样的道理,都是死循环了
谢谢大佬们的指点,我懂了
兄弟,路别走窄了,人家是想办法把复杂问题简单化,你是把简单问题复杂化