柚子快報激活碼778899分享:C語言藍橋杯組題目
柚子快報激活碼778899分享:C語言藍橋杯組題目
系列文章目錄
文章目錄
系列文章目錄前言題目第一題.1, 2, 3, 4 能組成多少個互不相同且無重復數(shù)字的三位數(shù)?都是多少?思路
第二題: 一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少?第三題: 輸入某年某月某日,判斷這一天是這一年的第幾天?
第四題:輸入三個整數(shù)X,Y,Z,請把這三個數(shù)由小到大輸出第四題:C語言用*號輸出字母C的圖案持續(xù)更新中..經(jīng)典結(jié)尾
前言
藍橋杯看著很簡單實際有點難度,只有自己熟練掌握語法之后再去刷算法題才可以游刃有余.
題目
第一題.1, 2, 3, 4 能組成多少個互不相同且無重復數(shù)字的三位數(shù)?都是多少?
結(jié)果:
可以組成 24 個三位數(shù)。
三位數(shù)分別是: 123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314, 321, 324, 341, 342, 412, 413, 421, 423, 431, 432.
#include
main() {
int i, j, k;
for (i = 1; i <= 4; i++) {
for (j = 1; j <= 4; j++) {
for (k = 1; k <= 4; k++) {
if (i != j && i != k && j != k) {
printf("i=%d j=%d k=%d ", i, j, k);
}
}
}
}
}
思路
使用窮舉算法
第二題: 一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少?
結(jié)果:
該數(shù)是 21
#include
#include
main() {
int x;
// 假設搜索范圍為0到10000
for (x = 0; x <= 10000; x++) {
// 檢查 x + 100 是否為完全平方數(shù)
int a_square = x + 100;
int b_square = x + 268;
// 使用 sqrt 函數(shù)計算平方根并檢查是否為完全平方數(shù)
int a = (int)sqrt(a_square);
int b = (int)sqrt(b_square);
if (a * a == a_square && b * b == b_square) {
printf("找到滿足條件的整數(shù): %d\n", x);
return 0; // 找到解后退出
}
}
printf("沒有找到滿足條件的整數(shù)。\n");
}
思路
完全平方數(shù)檢測:使用 sqrt() 函數(shù)計算平方根,并將結(jié)果轉(zhuǎn)換為整數(shù)。檢查 ( a ) 和 ( b ) 的平方是否分別等于 ( x + 100 ) 和 ( x + 268 )。
第三題: 輸入某年某月某日,判斷這一天是這一年的第幾天?
結(jié)果:
輸入:
year:2000
month:12
day:6
結(jié)果: 341
#include
int main() {
int year, month, day, sum = 0,i;
int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
printf("請輸入年份:");
scanf("%d", &year);
printf("請輸入月份:");
scanf("%d", &month);
printf("請輸入日期:");
scanf("%d", &day);
// 判斷是否為閏年
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
days[1] = 29;
}
// 計算天數(shù)
for ( i = 0; i < month - 1; i++) {
sum += days[i];
}
sum += day;
printf("%d年%d月%d日是這一年的第%d天", year, month, day, sum);
}
思路
1.區(qū)分平年和閏年2.把每一年的天數(shù)加起來3.最后在輸出
第四題:輸入三個整數(shù)X,Y,Z,請把這三個數(shù)由小到大輸出
結(jié)果:
輸入:
x: 200
y: 12
z: 600
結(jié)果: 12 200 600
#include
main() {
int X, Y, Z;
// 輸入三個整數(shù)
printf("請輸入三個整數(shù)(X Y Z):");
scanf("%d %d %d", &X, &Y, &Z);
// 使用簡單的排序算法進行排序
int temp;
// 冒泡排序
if (X > Y) {
temp = X;
X = Y;
Y = temp;
}
if (X > Z) {
temp = X;
X = Z;
Z = temp;
}
if (Y > Z) {
temp = Y;
Y = Z;
Z = temp;
}
// 輸出結(jié)果
printf("由小到大的順序為:%d %d %d\n", X, Y, Z);
}
思路
1.三個數(shù)用冒泡排序輸出
第四題:C語言用*號輸出字母C的圖案
#include
main() {
int height = 7; // 圖案高度
int width = 7; // 圖案寬度
int i,j;
for ( i = 0; i < height; i++) {
for ( j = 0; j < width; j++) {
// 輸出 '*' 的條件
if ((i == 0 && j > 0 && j < width - 1) || // 頂邊
(i == height - 1 && j > 0 && j < width - 1) || // 底邊
(j == 0 && (i > 0 && i < height - 1))) { // 左邊
printf("*");
} else {
printf(" ");
}
}
printf("\n"); // 換行
}
}
思路:
1. 外層循環(huán) for (int i = 0; i < height; i++) 控制行數(shù)(高度)。
內(nèi)層循環(huán) for (int j = 0; j < width; j++) 控制列數(shù)(寬度)。
2. 第一行和最后一行打印 * 的條件是:當 i 為 0 或 height - 1,且 j 在 0 和 width - 1 之間。
左邊豎線的條件是:j == 0 且 i 在 0 和 height - 1 之間。
3. 在符合條件的情況下打印 *,否則打印空格
持續(xù)更新中…
經(jīng)典結(jié)尾
燭光照亮了晚餐,照不出個答案;戀愛不是溫馨的請客吃飯.
柚子快報激活碼778899分享:C語言藍橋杯組題目
相關閱讀
本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權,聯(lián)系刪除。