[JavaQuiz] 3n+1 그거/Java2007. 9. 12. 10:57
/**
*
* @(#) ThreeNPlusOne.java
* created date : 2007. 09. 04
*
* (c) Copyright by Youbok, Choi.,
* All rights reserved.
*/
package ybchoi.quiz;
import java.util.ArrayList;
/**
* 자연수 n을 하나 받아서 짝수면 2로 나누고 홀수면 3*n+1을 합니다.
* 이 과정을 n이 1이 될때까지 반복하고 그 과정을 리스트로 돌려줍니다.
*
* @author Youbok, Choi
* @version 1.0
*
*/
public class ThreeNPlusOne {
public void doIt(String arg) {
int number = 0;
try {
number = Integer.parseInt(arg);
} catch(NumberFormatException e) {
number = 100;
}
ArrayList result = getList(number);
for(int i = 0 ; i < result.size(); i ++ ) {
if( i != 0 ) System.out.print(", ");
System.out.print(result.get(i));
}
}
private boolean isOdd(int number) {
return number % 2 == 1;
}
private ArrayList getList(int number) {
ArrayList tmp = new ArrayList();
tmp.add(new Integer(number));
do {
// 홀수인지 짝수인지 체크
number = isOdd(number) ? (number * 3 + 1) : (number / 2) ;
// System.out.println(number);
// try { Thread.sleep(1000); } catch(Exception ignr) {}
tmp.add(new Integer(number));
} while( number != 1 );
return tmp;
}
public static void main(String[] args) {
ThreeNPlusOne tnpo = new ThreeNPlusOne();
tnpo.doIt("44");
}
}
'그거 > Java' 카테고리의 다른 글
참, 자바란 것이 어렵다 ㅜㅜ (1) | 2007.10.24 |
---|---|
WebLogic 8.1 SP6 Download URL (0) | 2007.09.17 |
[JavaQuiz] 셰익스피어-원숭이 문제 (0) | 2007.09.12 |
[Java Quiz] 주민등록 번호와 바코드 유효성 체크 (0) | 2007.09.12 |
Java Anti-Pattern (2) | 2007.08.20 |