1 1 2 3  5  8 13  21.....(fabonacci数列)用递归做打印出前100项所有的值 int n=0 n=1  f(n-1)+f(n-2) 
 要求:1,打印出的每项之间要有一个空格  2,每行只能有80个字符,超过要换行打印。

解决方案 »

  1.   


        public static long fabonacci(long n) {
            if (n == 1 || n == 2)  return 1;
            else return fabonacci(n - 1) + fabonacci(n - 2);
        }
        
        for (int i = 1; i <= 100; i++) {
           System.out.print(fabonacci(i) + " ");
        }
      

  2.   


    StringBuffer sb = new StringBuffer();
    long f0 = 1;
    long f1 = 1;
    sb.append(String.valueOf(f0)).append(" ").append(String.valueOf(f1));
    long f2 = 0;
    for (int i = 2; i < 100; i++) {
      f2 = f1 + f0;
      sb.append(String.valueOf(f2)).append(" ");
      if (sb.toString().length() >= 80) {
        System.out.println(sb.toString());
        sb = new StringBuffer();
      }
      f0 = f1;
      f1 = f2;
    }
    System.out.println(sb.toString());
    楼主试试这段代码吧,到100已经超过long值的范围啦,需要用大数对象处理一下。
      

  3.   

    public class fab{
    public static String fabonacci(long n) {
            if (n == 1)  return 1+"";
            else return fabonacci(n - 2)+" "+fabonacci(n - 1);
    }public static void main(String[] args){
          String str=null;
          str=fabonacci(100);
          char chr[]=new char(str);
          int cnt=chr.length;
          for(int i=0;i<cnt;i++)
          {
             System.out.println(chr[i]);
             if((i+1)%80==0)
                System.out.println();  //换行
           }
    }}
      

  4.   

    class xx
    {  static int f(int i)
      { 
        if(i==1||i==2)
           return 1;
        else 
           return f(i-1)+f(i-2); 
      }  public static void main(String[] args)
      {
          int i;
          int cnt=0;
          
          for(i=1;i<=100;i++)
          {   
              if(cnt==80)
                {
                   cnt=0;
                   System.out.print("\n");
                }
                 
              System.out.print(f(i)+" ");
              cnt+=2;
                
          }
      }}
      

  5.   

    我运行过了,O.K ! 快点给分我. 给 { 分数>=10 && 分数<=20 }
      

  6.   

    class xx
    {  static int f(int i)
      { 
        if(i==1||i==2)
           return 1;
        else 
           return f(i-1)+f(i-2); 
      }  public static void main(String[] args)
      {
         int i;
          int j;
          int cnt=0;
          
          for(i=1;i<=100;i++)
          {   
              if(cnt==80)
                {
                   cnt=0;
                   System.out.print("\n");  //   换 行
                }
                 
              System.out.print(f(i)+" ");
              cnt+=2;
                
          }
      }}
      

  7.   

     public static long fabonacci(long n) {
            if (n == 1 || n == 2)  return 1;
            else return fabonacci(n - 1) + fabonacci(n - 2);
        }
        
        for (int i = 1; i <= 100; i++) {
           System.out.print(fabonacci(i) + " ");
        }
      

  8.   


    public class Test{
     public static int fabonacci(int n){
        if(n==1||n==2) return 1;
        else return fabonacci(n-1)+fabonacci(n-2);
    }
     public static void main(String[args]){
        int i=1;
     for(i;i<=100;i++){
     System.out.print(fabonacci(i)+" ");
     if(i%80==0) System.out.println();
    }
    }
    }
      

  9.   

    public class E
    {
    static long fabonacci(long n)
    {
    if (n==1||n==2)
    {
    return 1;
    }
    else
    return fabonacci(n-1)+fabonacci(n-2);
    }
    public static void main(String [] args)
    {
    long l;
    int r=0;//最新的一个结果值的长度

    int n;
    String str;
    StringBuffer sb = new StringBuffer();
    sb.append(String.valueOf(1));
    for (n=2;n<=100 ;n++ )
    {
    l = fabonacci(n); str = String.valueOf(l);
    r = str.length();
    if (sb.length()+1<80)
    {
    sb.append(" ");
    if (sb.length()+r<=80)
    {
    sb.append(str);
    }
    else
    {
    System.out.println(sb);
    sb.delete(0,sb.length());
    sb.append(str);
    }
    }
    else
    {
    System.out.println(sb);
    sb.delete(0,sb.length());
    sb.append(" "+str);
    System.out.println("length= "+sb.length());
    }


    }

    }
    }
      

  10.   

    楼主代码我编译运行了  正确无误!!public class Test{
     public static int fabonacci(int n){
        if(n==1||n==2) return 1;
        else return fabonacci(n-1)+fabonacci(n-2);
    }
     public static void main(String[]args){
      
     for(int i=1;i<=100;i++){
     System.out.print(fabonacci(i)+" ");
     StringBuffer sb=new StringBuffer("");
     sb.append(fabonacci(i)).append(" ");
     if(sb.length()==80) {System.out.println();}
    }
    }
    }