验证“鬼谷猜想”

利用 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的,则在其他地方也可以使用。

posted on 2018-09-09 13:59  念稚朗朗  阅读(193)  评论(0)    收藏  举报

导航