方法一
思想:t为中间变量,分子为上一项分子分母之和,分母为上一项的分子
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,t,number=20;
float a=2,b=1,s=0;
for(n=1;n<=number;n++){
s=s+a/b;
t=a;
a=a+b;
b=t; /*这部分是程序的关键,请读者猜猜t的作用*/
}
printf("sum is %9.6f\n",s);
return 0;
}
运行结果
思想二:
建立数组分别把分子分母求出来在进行计算(过程中要用double类型转换*)
/*有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
1.程序分析:请抓住分子与分母的变化规律。*/
#include<stdio.h>
int main (){
int numfm[30],numfz[30];double number[30],sum;
int i;
sum=2/1+3/2;
numfm[0]=1;numfm[1]=2;numfz[0]=2;numfz[1]=3;
for(i=2;i<20;i++){
numfz[i]=numfz[i-1]+numfz[i-2];
numfm[i]=numfm[i-1]+numfm[i-2];
number[i]=(double)(numfz[i])/(numfm[i]);
sum=sum+number[i];
}
printf("前20项的和为%9.6f",sum);
return 0;
}