Fibonacci(斐波那契)数列(一)

 
//fibonacci数列的递归算法
public class Fib_ra
{
	public static int fibonacci(int n)
	{
		if(n>=0)
		   if(n==0||n==1)
		       return n;
		   else
		       return fibonacci(n-2)+fibonacci(n-1);
	    return -1;
	}
	public static void main(String args[])
	{
		
		int m=25,n;
		int fib[]=new int[m];
		for(n=0;n<m;n++)
		fib[n]=fibonacci(n);
		for(n=0;n<fib.length;n++)
		System.out.print(" "+fib[n]);
		System.out.println();
	}
}

//计算斐波那契数列(Fibonacci)的第n个值
public class Fibonacci{
    public static void main(String args[]){
        int n = Integer.parseInt(args[0]);
        int n1 = 1;//第一个数
        int n2 = 1;//第二个数
        int sum = 0;//和
        if(n<=0){
            System.out.println("参数错误!");
            return;
        }
        if(n<=2){
            sum = 1;           
        }else{
            for(int i=3;i<=n;i++){
                sum = n1+n2;
                n1 = n2;
                n2 = sum;
            }
        }
        System.out.println(sum);
    }
}

//计算斐波那契数列(Fibonacci)的第n个值并打印
public class FibonacciPrint{
    public static void main(String args[]){
        int n = Integer.parseInt(args[0]);
        FibonacciPrint t = new FibonacciPrint();
        for(int i=1;i<=n;i++){
            t.print(i);
        }
    }
    public void print(int n){
        int n1 = 1;//第一个数
        int n2 = 1;//第二个数
        int sum = 0;//和
        if(n<=0){
            System.out.println("参数错误!");
            return;
        }
        if(n<=2){
            sum = 1;           
        }else{
            for(int i=3;i<=n;i++){
                sum = n1+n2;
                n1 = n2;
                n2 = sum;
            }
        }
        System.out.println(sum);
    }
}

//输出Fibonacci数列
public class Fib
{
	public static void main(String args[])
	{
		short i=0,j=1;
		do{
			System.out.print(""+i+""+j);
			i=(short)(i+j);
			j=(short)(i+j);
		}while(i>0);
		System.out.println();
	}
}

用一位数组保存Fibonacci序列值
public class Fib_array
{
	public static void main(String args[])
	{
		int n=25,i;
		int fib[]=new int[n];
		fib[0]=0;
		fib[1]=1;
		for(i=2;i<n;i++)
		fib[i]=fib[i-1]+fib[i-2];
		for(i=0;i<fib.length;i++)
		System.out.print(""+fib[i]);
		System.out.println();
	}
}

//用do-while输出Fibonacci数列
public class Fib
{
	public static void main(String args[])
	{
		short i=0,j=1;
		do{
			System.out.print(""+i+""+j);
			i=(short)(i+j);
			j=(short)(i+j);
		}while(i>0);
		System.out.println();
	}
}

//用一位数组保存Fibonacci序列值
public class Fib_array
{
	public static void main(String args[])
	{
		int n=25,i;
		int fib[]=new int[n];
		fib[0]=0;
		fib[1]=1;
		for(i=2;i<n;i++)
		fib[i]=fib[i-1]+fib[i-2];
		for(i=0;i<fib.length;i++)
		System.out.print(""+fib[i]);
		System.out.println();
	}
}

阅读更多
个人分类: 数据结构
上一篇斐波那契数列(二)
下一篇double 精度问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭