C言語は1組の点数の数の列の和を求めます
2827 ワード
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...この数列の上位20项の和を求める.1.プログラム分析:分子と分母の変化の法則をつかんでください.
最初のコードはフィボナッチ数列にウサギを求める方法の思考定式を受けて、分子分母を単独で放した.
ここで,分子分母の関係を見抜くことができれば,コードは簡潔になる.
最初のコードはフィボナッチ数列にウサギを求める方法の思考定式を受けて、分子分母を単独で放した.
#include
int main()
{
int i;
double m[21];
double n[21];
m[1]=2;
m[2]=3;
n[1]=1;
n[2]=2;
double sum=0;
for(i=1;i<=20;i++)
{
if(i==1)
{
m[1]=2;n[1]=1;
}
if(i==2)
{
m[2]=3;n[2]=2;
}
if(i>2)
{
m[i]=m[i-1]+m[i-2];
n[i]=n[i-1]+n[i-2];
}
sum=sum+m[i]/n[i];
}
printf(" 20 %f",sum);
}
ここで,分子分母の関係を見抜くことができれば,コードは簡潔になる.
int i;
double m=2,n=1,sum=0,t;
for(i=1;i<=20;i++)
{
sum=sum+m/n;
t=m; //
m=m+n;
n=t;
}
printf(" 20 %f",sum);
}