実験4-1-6スコアシーケンスの最初のN項目の合計を求めます(15ポイント)

この質問は、シーケンス計算するプログラムの準備が必要です2/1+3/2+5/3+8/5+...前のN段落を。シーケンスは最初の2から始まり、各項の分子は前の項の分子と分母の合計であり、分母は前の項の分子であることに注意してください

入力フォーマット:

1行に正の整数を入力しNます。

出力フォーマット:

部分和の値を小数点以下2桁まで正確に1行で出力します。タイトルは、計算結果が倍精度の範囲を超えないことを保証します。

入力サンプル:

20

サンプル出力:

32.66

コード:

# include <stdio.h>
# include <stdlib.h>

int main() {
    
    
	int N;
	scanf("%d",&N);
	double value = 0.0,a = 1.0,b = 2.0,temp;
	// a和b分别代表分母和分子 
	int i = 1; 
	while (i <= N) {
    
    
		value += (b / a);
		// 第(i+1)分母 == 第i分子,第(i+1)分子 = 第i分母 + 第i分子 
		temp = b;
		b += a;
		a = temp;
		i += 1; 
	}
	printf("%.2lf",value);
	return 0;
}

スクリーンショットを送信:

ここに画像の説明を挿入

問題解決のアイデア:

この質問の数学的アイデアはフィボナッチ纳妾(O(∩_∩)O)です。元々はウサギの生殖の問題を研究するために使用されていましたがPAT今では変化を伴う運動の問題になっています!以下は、分数を分子と分母に分けて理解します。

  • 分子:2 3 5 8
  • 分母:1 2 3 5
    見つけることが第(i+1)分母 == 第i分子,第(i+1)分子 = 第i分母 + 第i分子できるので、コードを簡単に書くことができます!

おすすめ

転載: blog.csdn.net/weixin_43862765/article/details/114477425