/* The program is to compute a number ,show the process of the hailstone.
* hailstone number: Start with any positive integer (an initial seed)
* and obtain a sequence of numbers by following these rules.
* 1. If the current number is even, divide it by two ;
* else if it is odd, multiply it by three and add one.
* 2. Repeat.
*
* Let's try a few numbers to see what happens:
* n=3; 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, ...
* n=4; 2, 1, 4, 2, 1, ...
* n=5; 16, 8, 4, 2, 1, 4, 2, 1, ...
* n=6; 3, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, ...
* n=7; 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, ...
*
*author:zhendongYi
*email:myyizhendong@google.com
*time:2016/07/01
*
*/
import acm.program.*;
public class Hailstone extends ConsoleProgram {
public void run() {
int number = readInt("Please input an positive Integer:");
if(number%2==0){
even(number);
}else{
odd(number);
}
}
/*
* when the number is even,divide it by two.
*/
private void even(int number) {
println(number+" is even,so I make half: "+number/2);
number /=2;
if(number!=1){
if(number%2==0){
even(number);
}else{
odd(number);
}
}
}
/*
* when the number is odd,multiply it by three and add one.
*/
private void odd(int number) {
println(number+" is odd,so I make 3n+1: "+number*3+1);
number = 3*number+1;
if(number!=1){
if(number%2==0){
even(number);
}else{
odd(number);
}
}
}
}
CS106A assignment3 --problem2 The Hailstone Sequence
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Day 12 神句文档 The team contends that these bear more than a...
- I admire myself. Yesterday I booked the English class fas...