迴圈判斷當前項是否大於給定閾值,大於就將當前項累加到結果中,否則繼續。
如何計算當前項?
n為偶數,分母小於n的因子都被約掉了
\[\frac
\]
n為奇數, 分母小於等於n的因子被約掉了
\[\frac
\]是否可行呢,我們先看具體的項數(n=4,5,6)情況。
n=4
\[\frac
\]
n=5
\[\frac
\]
n=6
\[\frac
\]觀察可知,分子變化相對簡單——因子只增加,而分母的因子存在增加和減少的情況。
若n為偶數,分母增加的因子是(2*n+1)
,分子增加因子n
若n為奇數,分母增加的因子是2*n+1
,減少的因子是n
,分子不變。
接下來通過具體的**去實現。
每一項的分子與分母型別為long long int
,需要將分子與分母化簡後再計算,不能直接各自求積相除,否則報錯。
#include #include using namespace std;
int main()
else //n為奇數時分母、分子計算
temp=(mo*1.0/de); //更新當前項
} //最後一項小於閾值的項仍要加進來
total+=temp;
// 保留6位小數輸出
cout
}
pta基礎程式設計題目集7 4
剛看一臉懵逼,後來發現是16位轉十進位制 bcd數是用乙個位元組來表達兩位十進位制的數,每四個位元表示一位。所以如果乙個bcd數的十六進製制是0x12,它表達的就是十進位制的12。但是小明沒學過bcd,把所有的bcd數都當作二進位制數轉換成十進位制輸出了。於是bcd的0x12被輸出成了十進位制的18...
pta基礎程式設計題目集 程式設計題
題目鏈結 5 7 12 24小時制 include int main int argc,const char argv 5 8 超速判斷 include int main int argc,const char argv 5 9 用天平找小球 include int main int argc,co...
PTA基礎程式設計題目集(程式設計題)
7 2 然後是幾點 有時候人們用四位數字表示乙個時間,比如1106表示11點零6分。現在,你的程式要根據起始時間和流逝的時間計算出終止時間。讀入兩個數字,第乙個數字以這樣的四位數字表示當前時間,第二個數字表示分鐘數,計算當前時間經過那麼多分鐘後是幾點,結果也表示為四位數字。當小時為個位數時,沒有前導...