ACMNO.12有一分數序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出這個數列的前N項之和,保留兩位小數。 輸入 N 輸出 數列前N項和 樣例輸入 10
阿新 • • 發佈:2018-12-15
題目描述
有一分數序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出這個數列的前N項之和,保留兩位小數。
輸入
N
輸出
數列前N項和
樣例輸入
10
樣例輸出
16.48
來源/分類
C語言
題目截圖:
思路:
看到這個題瞬間就有了思路, s+=(b*1.0)/c; t=b; b=b+c; c=t; 只是一開始,我沒有搞那個大眾都說的一個temp的東西! 導致賦值過程出錯! 一直是整數跟整數相除!沒有浮點數的出現。 後來嘗試了一下,這個語句就成功啦! 可能這個問題跟編譯器種類有關的,我的是dev-c++。就會出現這個問題! printf("s %.2f\n",s); 對呀,就是printf("%.2f").這個是小數點保留幾位就寫阿拉伯數字幾~
程式碼:
#include<iostream> using namespace std; int main() { double a,b,c,t;int i; double s;b=2.0;c=1.0; //printf("%.2f\n",s); //printf("%.2f\n",b); // printf("%.2f\n",c); // cout<<endl; cin>>a; for(i=1;i<=a;i++) { s+=(b*1.0)/c; t=b; b=b+c; c=t; //printf("s %.2f\n",s); // printf("%.2f\n",b); // printf("%.2f\n",c); } printf("%.2f",s); }
程式碼截圖:
程式碼執行情況截圖:
OJ結果: