java语言的科学与艺术-编程练习Hailstone

 1 /*
 2  * File: Hailstone.java
 3  * Name: 
 4  * Section Leader: 
 5  * --------------------
 6  * This file is the starter file for the Hailstone problem.
 7  */
 8 
 9 import acm.program.*;
10 
11 public class Hailstone extends ConsoleProgram {
12     public void run() {
13         println("This program show the Hailstone sequence.");
14         int n = readInt("Enter a postive number: ");
15         int m = 0;
16         int i = 0; // this is count
17         while(n != 1){
18             if(n % 2 == 0){
19                 m = nIsEven(n);
20                 println(n + " is even so I take half: " + m);
21                 n = m;
22                 i++;
23             } else {
24                 m = nIsOdd(n);
25                 println(n + " is odd, so I male 3n + 1: " + m);
26                 n = m;
27                 i++;
28         }
29         }
30         println("The process took " + i + " to reach 1");
31     }
32     
33     /* 
34      * If n is even, take half.
35      */
36     private int nIsEven(int n){
37         return n / 2;
38     }
39     
40     /*
41      * If n is odd, make 3n + 1.
42      */
43     private int nIsOdd(int n){
44         return 3*n + 1;
45     }
46 }

posted on 2012-12-08 20:43  mybluecode  阅读(343)  评论(0编辑  收藏  举报