1.已知 有一个数列: f(0) = 1,f(1) = 4,f(n+2)=2*f(n+1) + f(n), 其中 n 是大于 0的整数,求 f(10) 的 值。
import java.util.Scanner;
public class T3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n = in.nextInt();
T3 a =new T3();
System.out.println(a.f(n));
}
public long f(int n) {
long fn;
if (n == 0) {
return 1;
}else if (n == 1) {
return 4;
}else return fn=2*f(n-1)+f(n-2);
}
}
2.已知 一个数列: f(20) = 1,f(21) = 4,f(n+2) = 2*f(n+1)+f(n),其中n 是大于 0 的整数,求 f(10) 的 值 。
import java.util.Scanner;
public class T3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n = in.nextInt();
T3 a =new T3();
System.out.println(a.f(n));
}
public long f(int n) {
long fn;
if (n == 20) {
return 1;
}else if (n == 21) {
return 4;
}else return fn=f(n+2)-2*f(n+1);
}
}
3.输入一个数据 n ,计算斐波那契数列 的第 n 个值
1 1 2 3 5 8 13 21 34 55
规律:一个数等于前两个数之和
要求:计算斐波那契数列 的第 n 个值 ,并将整个数列打印 出来
//一个含智量比较低的直觉解法
import java.util.Scanner;
public class T3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n = in.nextInt();
T3 a =new T3();
for (int i=1;i<=n;i++) {
System.out.print(a.f(i)+" ");
}
System.out.println("结果是: "+a.f(n));
}
public int f(int n) {
int fn;
if (n == 1) {
return 1;
}else if (n == 2) {
return 1;
}else fn=f(n-1)+f(n-2);
return fn;
}
}