计算数列和2/1,3/2,5/3,8/5

Problem X: 计算数列和2/1,3/2,5/3,8/5…

Description

有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,…… 计算这个数列的前n项和。注意:C语言中整数/整数的结果为整数;需要用(float)强制转换为实型或乘以1.0后进行计算。

Input

输入一个正整数n。

Output

输出数列的前n项和(保留两位小数),输出格式可为:printf(“s=%.2f\n”,…);。

Sample Input

10
15
20

Sample Output

s=16.48
s=24.57
s=32.66

#include<stdio.h>
int main(){
	int a1[100],a2[100],n;
	float sum=0;
	a1[0]=2;
	a1[1]=3;
	a2[0]=1;
	a2[1]=2;
	for(int i=2;i<100;i++){
		a1[i]=a1[i-1]+a1[i-2];//斐波那契数列(Fibonacci sequence)
		a2[i]=a2[i-1]+a2[i-2];
	}	
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		sum=sum+(float)a1[i]/a2[i];
	}
	printf("s=%.2f\n",sum);
}

此问题的难点在于斐波那契数列

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……
除了第一和第二两个数字外,其余数字均是前两项之和,故可以首先设置两个数列来分别表示分子和分母。
此题解决方法多样,合适就好。

猜你喜欢

转载自blog.csdn.net/AFEI666666/article/details/86484959