第七屆藍橋杯題解

2021-08-17 12:16:51 字數 4775 閱讀 8146

純**,無解析,第七題和第十題不會答案1

. 171700 

2. 26 

3. 29 

4.swap(a,p,j);

5.f(a,k+1,m-i,b);

6.1580

第一題

煤球數目

有一堆煤球,堆成三角稜錐形。具體:

第一層放1個,

第二層3個(排列成三角形),

第三層6個(排列成三角形),

第四層10個(排列成三角形),

....

如果一共有100層,共有多少個煤球?

請填表示煤球總數目的數字。

注意:你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。

#include

int main()

printf("%d\n",sum);

}第二題

生日蠟燭

某君從某年開始每年都舉辦一次生日party,並且每次都要吹熄與年齡相同根數的蠟燭。

現在算起來,他一共吹熄了236根蠟燭。

請問,他從多少歲開始過生日party的?

請填寫他開始過生日party的年齡數。

注意:你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。

#include

int main()

else if(sum > 236)

}if(flag)

break;}}

第三題

湊算式b      def

a + --- + ------- = 10

c      ghi

(如果顯示有問題,可以參見【圖1.jpg】)

這個算式中a~i代表1~9的數字,不同的字母代表不同的數字。

比如:

6+8/3+952/714 就是一種解法,

5+3/1+972/486 是另一種解法。

這個算式一共有多少種解法?

注意:你提交應該是個整數,不要填寫任何多餘的內容或說明性文字。

#include

#include

using namespace std;

int main()

;int ans=0;

double sum;

dowhile(next_permutation(num,num+9));

printf("%d\n",ans);

}第四題

快速排序

排序在各種場合經常被用到。

快速排序是十分常用的高效率的演算法。

其思想是:先選乙個「標尺」,

用它把整個佇列過一遍篩子,

以保證:其左邊的元素都不大於它,其右邊的元素都不小於它。

這樣,排序問題就被分割為兩個子區間。

再分別對子區間排序就可以了。

下面的**是一種實現,請分析並填寫劃線部分缺少的**。

#include

void swap(int a, int i, int j)

int partition(int a, int p, int r)

swap(a,p,j);

return j;

}void quicksort(int a, int p, int r)

for(i=0; i<=a[k]; i++)

}int main()

;char b[buf];

f(a,0,m,b);

return 0;

}第六題

方格填數

如下的10個格仔

+--+--+--+

|  |  |  |

+--+--+--+--+

|  |  |  |  |

+--+--+--+--+

|  |  |  |

+--+--+--+

(如果顯示有問題,也可以參看【圖1.jpg】)

填入0~9的數字。要求:連續的兩個數字不能相鄰。

(左右、上下、對角都算相鄰)

一共有多少種可能的填數方案?

請填寫表示方案數目的整數。

注意:你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。

}第七題

剪郵票如【圖1.jpg】, 有12張連在一起的12生肖的郵票。

現在你要從中剪下5張來,要求必須是連著的。

(僅僅連線乙個角不算相連)

比如,【圖2.jpg】,【圖3.jpg】中,粉紅色所示部分就是合格的剪取。

請你計算,一共有多少種不同的剪取方法。

請填寫表示方案數目的整數。

注意:你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。

不會。。。

第八題

四平方和

四平方和定理,又稱為拉格朗日定理:

每個正整數都可以表示為至多4個正整數的平方和。

如果把0包括進去,就正好可以表示為4個數的平方和。

比如:5 = 0^2 + 0^2 + 1^2 + 2^2

7 = 1^2 + 1^2 + 1^2 + 2^2

(^符號表示乘方的意思)

對於乙個給定的正整數,可能存在多種平方和的表示法。

要求你對4個數排序:

0 <= a <= b <= c <= d

並對所有的可能表示法按 a,b,c,d 為聯合主鍵公升序排列,最後輸出第乙個表示法

程式輸入為乙個正整數n (n<5000000)

要求輸出4個非負整數,按從小到大排序,中間用空格分開

例如,輸入: 5

則程式應該輸出:

0 0 1 2

再例如,輸入:

12則程式應該輸出:

0 2 2 2

再例如,輸入:

773535

則程式應該輸出:

1 1 267 838

資源約定:

峰值記憶體消耗 < 256m

cpu消耗  < 3000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入...」 的多餘內容。

所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。

注意: main函式需要返回0

注意: 只使用ansi c/ansi c++ 標準,不要呼叫依賴於編譯環境或作業系統的特殊函式。

注意: 所有依賴的函式必須明確地在原始檔中 #include , 不能通過工程設定而省略常用標頭檔案。

提交時,注意選擇所期望的編譯器型別。

待續。。。

#include

#include

int main()

}if(flag)

break;

}if(flag)

break;}}

}第九題

交換瓶子

有n個瓶子,編號 1 ~ n,放在架子上。

比如有5個瓶子:

2 1 3 5 4

要求每次拿起2個瓶子,交換它們的位置。

經過若干次後,使得瓶子的序號為:

1 2 3 4 5

對於這麼簡單的情況,顯然,至少需要交換2次就可以復位。

如果瓶子更多呢?你可以通過程式設計來解決。

輸入格式為兩行:

第一行: 乙個正整數n(n<10000), 表示瓶子的數目

第二行:n個正整數,用空格分開,表示瓶子目前的排列情況。

輸出資料為一行乙個正整數,表示至少交換多少次,才能完成排序。

例如,輸入: 5

3 1 2 5 4

程式應該輸出: 3

再例如,輸入: 5

5 4 3 2 1

程式應該輸出: 2

資源約定:

峰值記憶體消耗 < 256m

cpu消耗  < 1000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入...」 的多餘內容。

所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。

注意: main函式需要返回0

注意: 只使用ansi c/ansi c++ 標準,不要呼叫依賴於編譯環境或作業系統的特殊函式。

注意: 所有依賴的函式必須明確地在原始檔中 #include , 不能通過工程設定而省略常用標頭檔案。

提交時,注意選擇所期望的編譯器型別。

#include

int main()

}printf("%d\n",ans);

}沒了,第十題不會

藍橋杯第七屆 平方怪圈

平方怪圈 如果把乙個正整數的每一位都平方後再求和,得到乙個新的正整數。對新產生的正整數再做同樣的處理。如此一來,你會發現,不管開始取的是什麼數字,最終如果不是落入1,就是落入同乙個迴圈圈。請寫出這個迴圈圈中最大的那個數字。請填寫該最大數字。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性...

第七屆藍橋杯有獎猜謎

小明很喜歡猜謎語。最近,他被邀請參加了x星球的猜謎活動。每位選手開始的時候都被發給777個電子幣。規則是 猜對了,手裡的電子幣數目翻倍,猜錯了,扣除555個電子幣,扣完為止。小明一共猜了15條謎語。戰果為 vxvxvxvxvxvxvvx 其中v表示猜對了,x表示猜錯了。請你計算一下,小明最後手裡的電...

藍橋杯 第七屆決賽 打靶

打靶 小明參加x星球的打靶比賽。比賽使用電子感應計分系統。其中有一局,小明得了96分。這局小明共打了6發子彈,沒有脫靶。但望遠鏡看過去,只有3個彈孔。顯然,有些子彈準確地穿過了前邊的彈孔。不同環數得分是這樣設定的 1,2,3,5,10,20,25,50 那麼小明的6發子彈得分都是多少呢?有哪些可能情...