藍橋杯c語言試(2)

2021-10-05 06:12:12 字數 4468 閱讀 7397

1、

/* excel表的格仔很多,為了避免把某行的資料和相鄰行混淆,可以採用隔行變色的樣式。小明設計的樣式為:第1行藍色,第2行白色,第3行藍色,第4行白色,…

現在小明想知道,從第21行到第50行一共包含了多少個藍色的行。

請你直接提交這個整數,千萬不要填寫任何多餘的內容。

思路:問的是包含多少個藍色,而題目中除了藍色就是白色,正好藍色所在行數是奇數,白色所在行是偶數。題目實質是想讓我們求從21行到50行有多少個奇數。

實現方法:從21遍歷到50,在這個迴圈中如果該數是奇數,則次數進行加1,最後列印出次數即可

*/

#include

intmain()

}printf

("%d"

, n)

;return0;

}//答案:15

////小技巧:利用數學求解,直接看我們可能不確定21到50有多少個奇數,但是從1到10,我們知道有5個奇數,對比就可以發現21到50有15個奇數

2、

//回文數

////問題描述

//1221是乙個非常特殊的數,它從左邊讀和從右邊讀是一樣的,程式設計求所有這樣的四位十進位制數。

//輸出格式

//按從小到大的順序輸出滿足條件的四位十進位制數。

#include

intmain()

}

3、

//加法變乘法

////我們都知道:1 + 2 + 3 + … + 49 = 1225

//現在要求你把其中兩個不相鄰的加號變成乘號,使得結果為2015

////比如:

//1 + 2 + 3 + … + 10 * 11 + 12 + … + 27 * 28 + 29 + … + 49 = 2015

//就是符合要求的答案。

////請你尋找另外乙個可能的答案,並把位置靠前的那個乘號左邊的數字提交(對於示例,就是提交10)。

////注意:需要你提交的是乙個整數,不要填寫任何多餘的內容。

////

////此題思路很簡單,有48個『 + 』號,題目要求將其中兩個不相鄰的 『 + 』 號變成 『 * 』 號後式子得出的結果是2015.

////從第1個 『 + 』 號開始遍歷,依次將第1~46個 『 + 』 號變成 『 * 』 號,定位好第乙個 『 + 』 號後,定位第二個 『 + 』 號,

////即從第乙個 『 + 』 號後定位第二個 『 + 』 號(注意第乙個 『 + 』 號前面不能是 10 )。定位好兩個 『 + 』 號後判斷式

////子值是否等於2015,等於跳出迴圈,否則繼續迴圈。

#include

intmain()

}return0;

}

4、

//立方尾不變

////有些數字的立方的末尾正好是該數字本身。

//比如:1, 4, 5, 6, 9, 24, 25, ….

////請你計算一下,在10000以內的數字中(指該數字,並非它立方後的數值),符合這個特徵的正整數一共有多少個。

////請提交該整數,不要填寫任何多餘的內容。

////思路分析:

//這道題還是很簡單的。

//只要通過列舉1 - 10000然後計算出該數的立方。在對該數立方取該數的位數

//if(該數立方 % 該數字數 == 該數)

////

//1//2

//3//4

//5//6

//7

#include

#define size 10000

intf

(int n)

intmain()

}printf

("%d\n"

, count)

;return0;

}

5、

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

//第一層放1個,

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

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

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

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

////輸出第一百層的煤球數量。

#include

#include

intmain()

printf

("%d\n"

, s)

;return0;

}

6、

//如果把乙個正整數的每一位都平方後再求和,得到乙個新的正整數。

//對新產生的正整數再做同樣的處理。

////如此一來,你會發現,不管開始取的是什麼數字,

//最終如果不是落入1,就是落入同乙個迴圈圈。

////請寫出這個迴圈圈中最大的那個數字。

////請填寫該最大數字。

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

////輸入

//沒有輸入。

////輸出

//1個整數

#include

intmain()

a = i;

if(max == a)

break

;else

max = max > a ? max : a;

}printf

("%d"

, max)

;return0;

}//1

//2//3

//4//5

//6//7

//8//9

//10

//11

//12

//13

//14

//15

//16

//17

//18

//19

//20

////答案:145

7、

//閏年判斷

////問題描述

////給定乙個年份,判斷這一年是不是閏年。

////當以下情況之一滿足時,這一年是閏年:

////年份是4的倍數而不是100的倍數;

////年份是400的倍數。

////其他的年份都不是閏年。

//輸入格式

//輸入包含乙個整數y,表示當前的年份。

//輸出格式

//輸出一行,如果給定的年份是閏年,則輸出yes,否則輸出no。

////說明:當試題指定你輸出乙個字串作為結果(比如本題的yes或者no,你需要嚴格按照試題中給定的大小寫,寫錯大小寫將不得分。

//樣例輸入

//2013

//樣例輸出

//no

//樣例輸入

//2016

//樣例輸出

//yes

//資料規模與約定

//1990 <= y <= 2050。

#include

intmain()

*/scanf

("%d"

,&year);if

(((year %4==

0)&&(year %

100!=0)

)||(year %

400==0)

)else

printf

("\n");

return0;

}

8、

//數列特徵

////問題描述

////給出n個數,找出這n個數的最大值,最小值,和。

//輸入格式

////第一行為整數n,表示數的個數。

////第二行有n個數,為給定的n個數,每個數的絕對值都小於10000。

//輸出格式

//輸出三行,每行乙個整數。第一行表示這些數中的最大值,第二行表示這些數中的最小值,第三行表示這些數的和。

//樣例輸入

//5//1 3 - 2 4 5

//樣例輸出

//5//- 2

//11

//資料規模與約定

//1 <= n <= 10000。

int

main()

max = a[0]

; min = a[0]

;for

(i =

0; i < n; i++

)printf

("%d\n%d\n%d\n"

, max, min, sum)

;return0;

}

C語言 藍橋杯初級

問題描述 給定n個十六進製制正整數,輸出它們對應的八進位制數。輸入格式 輸入的第一行為乙個正整數n 1 n 10 接下來n行,每行乙個由09 大寫字母af組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。輸出格式 輸出n行,每行為輸入對應的八進位制正整數。注意 輸入的...

藍橋杯 Sine之舞(C語言)

藍橋杯 sine之舞 感覺第一眼看上去就很像是找規律的題 所以想看看找一下規律,試試數學歸納法 先寫出了 a1 sin 1 s1 a1 1 sin 1 1 a2 sin 1 sin 2 s2 a1 2 a2 1 sin 1 2 sin 1 sin 2 1 a3 sin 1 sin 2 sin 3 s...

藍橋杯 Huffuman樹(C語言)

藍橋杯 huffuman樹 和求哈夫曼樹一樣,先進行排序,我是進行的公升序排序,從第一位和第二位開始依次相加,每次再進行排序,用乙個常數變數疊加記錄。問題描述 huffman樹在編碼中有著廣泛的應用。在這裡,我們只關心huffman樹的構造過程。給出一列數 用這列數構造huffman樹的過程如下 1...