藍橋杯試題 入門篇

2021-08-16 04:51:56 字數 2824 閱讀 1089

問題描述

fibonacci數列的遞推公式為:fn=fn-1+fn-2,其中f1=f2=1。

當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。

輸入格式

輸入包含乙個整數n。

輸出格式

輸出一行,包含乙個整數,表示f

n除以10007的餘數。

說明:在本題中,答案是要求fn除以10007的餘數,因此我們只要能算出這個餘數即可,而不需要先計算出fn的準確值,再將計算的結果除以10007取餘數,直接計算餘數往往比先算出原數再取餘簡單。

樣例輸入

10樣例輸出

55樣例輸入

22樣例輸出

7704

資料規模與約定

1 <= n <= 1,000,000。

解答:

int fibonacci(int n)else if(n==2)else

}int main()

else

return f[n]; }

}int main()

問題描述

求1+2+3+...+n的值。

輸入格式

輸入包括乙個整數n。

輸出格式

輸出一行,包括乙個整數,表示1+2+3+...+n的值。

樣例輸入

4樣例輸出

10樣例輸入

100

說明:有一些試題會給出多組樣例輸入輸出以幫助你更好的做題。

一般在提交之前所有這些樣例都需要測試通過才行,但這不代表這幾組樣例資料都正確了你的程式就是完全正確的,潛在的錯誤可能仍然導致你的得分較低。

樣例輸出

5050

資料規模與約定

1 <= n <= 1,000,000,000。

說明:請注意這裡的資料規模。

本題直接的想法是直接使用乙個迴圈來累加,然而,當資料規模很大時,這種「暴力」的方法往往會導致超時。此時你需要想想其他方法。你可以試一試,如果使用1000000000作為你的程式的輸入,你的程式是不是能在規定的上面規定的時限內執行出來。

本題另乙個要值得注意的地方是答案的大小不在你的語言預設的整型(int)範圍內,如果使用整型來儲存結果,會導致結果錯誤。

如果你使用c++或c語言而且準備使用printf輸出結果,則你的格式字串應該寫成%i64d以輸出long long型別的整數。

解答:1.題目已經提示的很清楚了用迴圈可能會超時

2.需要使用long long int 來儲存資料

所以就用數學知識求出sn=n*(1+n)/2,然後再用程式計算即可。這道題很可能是提醒我們在以後的解題過程中也很可能會借助數學知識來求解。

#includeusing namespace std;

int main() {

long long int n=0;

cin>>n;

cout<

問題描述

輸入a、b,輸出a+b。

說明:在「問題描述」這部分,會給出試題的意思,以及所要求的目標。

輸入格式

輸入的第一行包括兩個整數,由空格分隔,分別表示a、b。

說明:「輸入格式」是描述在測試你的程式時,所給的輸入一定滿足的格式。

做題時你應該假設所給的輸入是一定滿足輸入格式的要求的,所以你不需要對輸入的格式進行檢查。多餘的格式檢查可能會適得其反,使用你的程式錯誤。

在測試的時候,系統會自動將輸入資料輸入到你的程式中,你不能給任何提示。比如,你在輸入的時候提示「請輸入a、b」之類的話是不需要的,這些多餘的輸出會使得你的程式被判定為錯誤。

輸出格式

輸出一行,包括乙個整數,表示a+b的值。

說明:「輸出格式」是要求你的程式在輸出結果的時候必須滿足的格式。

在輸出時,你的程式必須滿足這個格式的要求,不能少任何內容,也不能多任何內容。如果你的內容和輸出格式要求的不一樣,你的程式會被判斷為錯誤,包括你輸出了提示資訊、中間除錯資訊、計時或者統計的資訊等。

樣例輸入

12 45

說明:「樣例輸入」給出了一組滿足「輸入格式」要求的輸入的例子。

這裡給出的輸入只是可能用來測試你的程式的乙個輸入,在測試的時候,還會有更多的輸入用來測試你的程式。

樣例輸出

57 說明:「樣例輸出」給出了一組滿足「輸出格式」要求的輸出的例子。

樣例輸出中的結果是和樣例輸入中的是對應的,因此,你可以使用樣例的輸入輸出簡單的檢查你的程式。

要特別指出的是,能夠通過樣例輸入輸出的程式並不一定是正確的程式,在測試的時候,會用很多組資料進行測試,而不侷限於樣例資料。有可能乙個程式通過了樣例資料,但測試的時候仍只能得0分,可能因為這個程式只在一些類似樣例的特例中正確,而不具有通用性,再測試更多資料時會出現錯誤。

比如,對於本題,如果你寫乙個程式不管輸入是什麼都輸入57,則樣例資料是對的,但是測試其他資料,哪怕輸入是1和2,這個程式也輸出57,則對於其他資料這個程式都不正確。

資料規模與約定

-10000 <= a, b <= 10000。

說明:「資料規模與約定」中給出了試題中主要引數的範圍。

這個範圍對於解題非常重要,不同的資料範圍會導致試題需要使用不同的解法來解決。比如本題中給的a、b範圍不大,可以使用整型(int)來儲存,如果範圍更大,超過int的範圍,則要考慮其他方法來儲存大數。

有一些範圍在方便的時候是在「問題描述」中直接給的,所以在做題時不僅要看這個範圍,還要注意問題描述。

解答:看到這題我鬱悶了,原來我題目順序做反了。。。

這題主要是考查輸入與輸出

#includeusing namespace std;

int main() {

int a,b;

cin>>a>>b;

cout<

藍橋練習系統試題筆記C 入門篇

1.斐波那契數列 fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。includeint main printf d a n return0 2.圓的面積 給定圓的半徑r,求圓的面積。incl...

正則 入門篇

如果你對正則感興趣,讀完這篇文章,一定會有收穫 寫好正規表示式的兩個要點 1.正確匹配字元數量 相關符號 2.正確匹配字元種類 相關符號 除上面符號以外的其它符號 相關符號 代表 萬能匹配 可以匹配除了 n 換行符 之外的任何單個字元 代表 不要貪婪 用在 後面,表示匹配的越少越好 也代表 非 即一...

正則 入門篇

如果你對正則感興趣,讀完這篇文章,一定會有收穫 代表 萬能匹配 可以匹配除了 n 換行符 之外的任何單個字元 代表 不要貪婪 用在 後面,表示匹配的越少越好 也代表 非 即一 代表 除了你 在中括號內,如 表示單個非下劃線字元 也代表 匹配首位 代表 匹配末位 代表 至無窮 大於等於0的整數 代表 ...