62,568
社区成员




package Practice01;
import java.util.*;
public class Test15 {
/***
*15,求斐波那契数列前n项的和值,斐波那契数列如下:
1,1,2,3,5,8,13,21……
前两位数是1,从第三位开始每位数都是前两位数之和
*
*/
public static void main(String[] args) {
System.out.println("请问您要前几项的和?(整数)");
Scanner input =new Scanner(System.in);
int length=input.nextInt();
int []a =new int [length];
new Test15().output(a, a.length);
}
void output(int[]a,int n)
{
int sum=0;
for(int i=0;i<n;i++)//给数组赋值
{
if (i==0||i==1)
{
a[i]=1;
}
else
{
a[i]=a[i-1]+a[i-2];
}
}
for(int i=0;i<n;i++)//求和
{
sum+=a[i];
}
System.out.println("斐波那契数列前"+n+"项的和是"+sum);
}
}
public int a(int n) {
return (n > 2) ? a(n-1) + a(n-2) : 1;
}
public class Fibonacci {
static double sqrt5 = Math.sqrt(5);
/**
* @param args
*/
public static void main(String[] args) {
for (int i = 0; i < 20; i++) {
System.out.println("F" + i + ":" + getFibonacci(i));
}
}
public static int getFibonacci(int n) {
return (int) ((Math.pow(((1.0 + sqrt5) / 2.0), n) - Math.pow(((1.0 - sqrt5) / 2.0), n)) / sqrt5);
}
}
public static long[] a(int n) {
long[] arr = new long[n];
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i < n; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
return arr;
}
private int[] _a(int n) {
if (n < 0) return new int[]{ 0, 0 };
if (n < 3) return new int[]{ 1, n-1 };
int[] ary = _a(n - 1);
int i = ary[0];
ary[0] = i + ary[1];
ary[1] = i;
return ary;
}
public int a(int n) {
return _a(n)[0];
}
public class Main {
static int[] ia = new int[30];
/** Creates a new instance of Main */
public Main() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
ia[0]=1;
ia[1]=1;
aa(ia[0],ia[1],2);
System.out.println(ia[29]);
}
static void aa(int i,int j,int end){
ia[end]=i+j;
if(end==29){
return ;
}
aa(ia[end-1],ia[end],end+1);
}
}