/*
* 練習問題1.10 p.17
* ImprovedFibonacciアプリケーションを修正して、数列を配列に保存するようにしなさい。
* その際に、数列の値とその値が偶数かを示すブール値を保持するクラスを作成して、そのクラスのオブジェクトへの
* 参照を配列として持つようにしなさい。
*/
package ch01.ex01_10;
public class ArrayImprovedFibonacci
{
static final int START_INDEX = 9;
static final int FINAL_INDEX = 1;
static class Fibonacci
{
public int value;
public boolean is_even;
}
/**
* 偶数要素に'*'を付けて、フィボナッチ数列の最初の方の要素を表示する
*
* @param args
*/
public static void main(String[] args)
{
int lo = 1;
int hi = 1;
Fibonacci[] result = new Fibonacci[100];
for (int i = 0; i < 100; i++)
{
result[i] = new Fibonacci();
}
result[START_INDEX].value = lo;
if (result[START_INDEX].value % 2 == 0)
{
result[START_INDEX].is_even = true;
}
for (int i = START_INDEX - 1; i >= FINAL_INDEX; i--)
{
result[i].value = hi;
if (result[i].value % 2 == 0)
{
// mark = " *";
result[i].is_even = true;
}
else
{
// mark = "";
;
}
hi = lo + hi;
lo = hi - lo;
}
for (int i = START_INDEX; i >= FINAL_INDEX; i--)
{
if (result[i].is_even == true)
{
System.out.println(result[i].value + " *");
}
else
{
System.out.println(result[i].value);
}
}
}
}