题目
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…请编写程序,根据用户的输入N,求出这个数列的前n项之和。
分析
规律: 前一项的分子+分母=后一项的分母,前一项的分子为后一项的分母
Java实现
public static void sum(){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
if (N <= 0) return;
int a = 2; //分子初项
int b = 1; //分母初项
double sum = 0;
while (N > 0){
sum += (double)a/b;
int flag = a;
a = a + b;
b = flag;
N--;
}
System.out.println(sum);
}
- 时间复杂度:O(n)
- 空间复杂度:O(1)