아래 처럼 피보나치(Fibonacci) 수 테이블을 출력하는 Java 소스이다.
* Java 소스
// Filename: MakeFibonacciTable_01.java
//
// 1) Show a simple table of Fibonacci numbers.
// 2) Use a linear recursion whose time complexity is o(N).
//
// Compile: javac MakeFibonacciTable_01.java
// Execute: java MakeFibonacciTable_01
//
// Date: 2013. 3. 14.
// Author: pkim __AT__ scripts ((DOT)) pe ((DOT)) kr
import java.math.*;
public class MakeFibonacciTable_01 {
private static String toCurrencyString(BigInteger x) {
String s = x.toString();
int n = s.length();
int i = 0;
if (n <= 3) {
return s;
}
String t = "";
i = n % 3;
if (i > 0 && n > 3) {
t = s.substring(0, n % 3) + ",";
}
while (i < n - 3) {
t += s.substring(i, i + 3) + ",";
i += 3;
}
t += s.substring(i, n);
return t;
}
private static BigInteger fib_aux(int n, int i, BigInteger a, BigInteger b) {
if (i == 0) {
return a;
}
else {
BigInteger t = a.add(b);
a = b;
b = t;
return fib_aux(n, i - 1, a, b);
}
}
public static BigInteger fibo1(int n) {
return fib_aux(n, n, new BigInteger("0"), new BigInteger("1"));
}
public static void main(String[] args) {
BigInteger value;
int i;
System.out.printf("---------------------------------------------------------\n");
System.out.printf(" n F(n) \n");
System.out.printf("---------------------------------------------------------\n");
for (i = 0; i <= 150; i++) {
value = fibo1(i);
if ((i % 10) == 0) {
System.out.printf("%5d %47s\n", i, toCurrencyString(value));
}
}
System.out.printf("----------------------------------------------------------\n");
System.out.printf("\n");
}
}
'프로그래밍 > Java' 카테고리의 다른 글
한글 윈도우 8.1 의 Cygwin64 에서 javac 와 java 사용할 때의 인코딩 옵션 (0) | 2014.01.25 |
---|---|
이진 파일을 읽어서 16진수로 보여주는 HexView 소스 with Java (0) | 2013.08.05 |
Java 언어로 평방근, 입방근, n제곱근 구하는 함수를 구현하고 테스트하기 (1) | 2013.01.11 |
Java 언어로 역삼각함수, 역쌍곡선함수 값을 구하는 예제 (0) | 2013.01.01 |
감마함수(gamma function)의 값을 (유효수자 15자리 까지 정밀하게) 계산하는 Java 언어 소스 (0) | 2012.12.13 |