验证“鬼谷猜想”
利用 InputStream输入流验证“鬼谷猜想”
1 package number; 2 3 import java.util.Scanner; 4 5 public class guigu { 6 7 public static void main(String[] args) { 8 Scanner sc = new Scanner(System.in);// InputStream输入流,从控制台读入数据 9 System.out.println("请输入一个自然数验证鬼谷猜想"); 10 11 int a = sc.nextInt();// 创建一个sc对象,用来读取数据,读入的数据是int型的 12 int a1 = 0; 13 for (;;) 14 { 15 if (a % 2 == 0) //如果为偶数,取模后为0,进入循环,除以2后输出一次,在后面第二次判断是否为1,不是就继续循环直到为1后跳出循环 16 { 17 a1 = a / 2; 18 } else 19 { 20 a1 = a * 3 + 1;//如果为奇数,进入此语句,循环一次输出一次,直到结果为1后跳出循环 21 } 22 a = a1; 23 System.out.println(a); 24 if (a == 1) 25 break; 26 } 27 } 28 29 }
从控制台读入数据的方法有两种:
1、new Scanner(System.in).nextInt();
2、Scanner in = new Scanner(System.in);
int a = in.nextInt();
两种方法是等价的。但是如果要通过控制台输入多个数据(如int型数组)的话最好用第二中方式。因为用第一种方式的话,每次都要new一个对象,会占用较大的内存。
第一个创建的方式只适合在本类或者本函数中使用,并没有具体创建出Scanner对象,第二个创建了一个in对象,如果设置成public的,则在其他地方也可以使用。
浙公网安备 33010602011771号