编写一个java类,控制台输出1,1,2,3,5,8,13

编写一个java类,实现 输入1,1,2,3,5,8,13,22 (后面一个数是前面两

个数字的和) 通过构造方法传入参数,例如传入的参数是 5,那就打印

1,1,2,3,5 ,望各位java好友编写一下,有的话,copy 也可以的!

谢谢了!

import java.util.ArrayList;
import java.util.List;

/**
 * 输出斐波那契数列。
 * 
 * @author 老紫竹
 */
public class TT {
  private List<Integer> list = new ArrayList<Integer>();

  public TT(int number) {
    list.add(1);
    list.add(1);
    for (int i = 2; i <= number; i++) {
      list.add(list.get(i - 1) + list.get(i - 2));
    }
  }

  public String toString() {
    StringBuilder b = new StringBuilder();
    for (int num : list) {
      b.append(num + ",");
    }
    b.deleteCharAt(b.length() - 1);
    return b.toString();
  }

  public static void main(String[] args) {
    TT t = new TT(5);
    System.out.println(t);
  }
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-10-28
import java.util.*;
public class Test{
public static void main( String args[]) throws Exception
{
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数:");
int num = input.nextInt();
int a=1,b=1;
int sum = 0;
System.out.println(a);
System.out.println(b);
for(int i=1;;i++){
sum = a + b;
b = a;
a = sum;

if(sum>num){
break;
}
System.out.println(sum);
}

}
}
终于搞定了,花得时间比较多,哈哈!自己菜了点,努力ing...
第2个回答  2008-10-28
输入5
传的只是个循环次数

比如说是n
int x=0;
int y=1;
for(int i=1;i<=n;i++)
{
if(Math.abs(i%2)==0)

{
x=x+y ;
System.out.println(x);
}
if(Math.abs(i%2)==1)
{
y=x+y ;
System.out.println(y);
}
}//这样输出的结果和你有要求的不一样 是 1 2 3 5 8
你自己再修改一下就OK了
第3个回答  2008-10-31
这是著名的斐波那锲数列,由兔子问题引起。
这组数显然很有规律,可以采用---<递归>---的方法。
//=================实现类============================
class myClass
{
private int num;//属性:最大范围

public myClass(int n)
{
num = n;
Show(0,1);
}

public void Show(int a,int b)//核心递归方法
{
if (b <= num)
{ System.out.println(b);
Show(b,a+b);
}
}
}
//=================测试类============================
public class Test{

public static void main(String[] args)
{
myClass my = new myClass(10000);
}}
第4个回答  2008-10-30
/*绝对能实现你的要求,直接复制过去就可以使用,注意文件名和类名相同就可以*/
public class Fibonacci {
private static int[] a;

public static void main(String[] args) {
f(5);//只要改变f中的数就可以实现所求数列
}

public static void f(int n) {
a = new int[n];
a[0] = 1;
a[1] = 1;
for (int i = 2; i < n; i++) {
a[i] = a[i - 1] + a[i - 2];
}
for (int j = 0; j < n; j++) {
System.out.print(a[j] + ",");
}
}
}
相似回答