C語言趣味題

2021-08-20 06:13:54 字數 4375 閱讀 1996

時間限制: 1 sec  記憶體限制: 128 mb

提交: 341  解決: 63

[提交][狀態][討論版]

乙隻兔子躲進了n個環形分布的洞的某乙個中。狼在第乙個洞沒有找到兔子,就隔乙個洞,到第三個洞去找;也沒有找到,就隔兩個洞,到第六個洞去找。以後每次多乙個洞去找兔子……這樣下去,如果一直找不到兔子,請問兔子可能在哪個洞中?

有多組測試資料,讀取到檔案結尾符為止。每組測試資料輸入n(2≤n≤100),即洞穴個數。輸入到檔案結尾符為止。

兔子可能藏匿的洞。如果不止乙個,按從小到大的順序輸出。如果不存在,輸出空行。

10
8
15
2 4 7 9
2 4 5 7 8 9 11 12 14
用乙個陣列a[10],對應的元素a[0],a[1],a[2]……a[9]對應表示10個洞,初值均置1。通過乙個迴圈用「窮舉法」找兔子,第n次查詢對應第(n-1)%10個洞,如果在第(n-1)%10個洞中沒有找到兔子,因此將陣列元素a[(n-1)%10]置0值。迴圈完成後,檢查a陣列各元素(各個洞)的值,若其值仍為1,則兔子可能藏身該洞中。

#include

#include

int ok[110];

int main()

else

printf("%d",i);

}printf("\n");

} return 0;

}時間限制: 1 sec  記憶體限制: 128 mb

提交: 174  解決: 73

[提交][狀態][討論版]

桌子上有25顆棋子。遊戲雙方輪流取子,每人每次最少取走一顆棋子,最多可取走3顆棋子。雙方照這樣取下去,直到取光所有的棋子。於是雙方手中必然一方為偶數,一方為奇數,偶數方為勝者。請程式設計實現人機遊戲。人先走,計算機後走。若遊戲結束,則輸出「gameover!」。

輸入人取走棋子的個數。輸入一次,按一次回車。遊戲不止一輪。按下檔案結尾符,退出遊戲。必須在完成一輪後退出遊戲。不得中途退出遊戲。

輸出計算機取走的個數,每次輸出最優解。

1
1
1
1
1
1
1
2
1
3
2
1
3
1
3
3
3
3
3
3
game over!
2
3
1
2
3
1
game over!

#include

int main() }

else

else

} }

return 0;

} 時間限制: 1 sec  記憶體限制: 128 mb

提交: 186  解決: 102

[提交][狀態][討論版]

5只猴子一起摘了1堆桃子。因為太累了,它們商量決定,先睡一覺再分。過了不知多久,1只猴子來了。它見別的猴子沒來,便將這1堆桃子平均分成5份,結果多了1個,就將多的這個吃了,拿走其中的1堆。又過了不知多久,第2只猴子來了。它不知道有1個同伴已經來過,還以為自己是第1個到的呢。於是將地上的桃子堆起來,平均分成5份,發現也多了1個,同樣吃了這1個,拿走其中的1堆。第3只、第4只、第5只猴子都是這樣……問這5只猴子至少摘了多少個桃子?第5個猴子走後還剩下多少個桃子?

無輸出5只猴子至少摘了多少個桃子,第5個猴子走後還剩下多少個桃子。中間用空格隔開。

3121 1020
思路一:「分」——假設至少摘了first_num個桃子,則令first_num=6,7,8,9,10,……這樣不斷的試,如果那個數能按規則(first_num=(first_num-1)/5*4)被5只猴子順利的吃1個並分5組,則為所求。思路二:「湊」——假設最後剩下last_num個桃子,則令last_num=4,5,6,7,8,9,10,……這樣不斷的試,如果那個數能按規則(last_num%4==0則last_num= last_num / 4 * 5 + 1)湊5次,則為所求。

#include

#include

int main()

else

break;

}       

} //  printf("time:%.2lf\n",(double)clock()/ clocks_per_sec);

return 0;

}時間限制: 1 sec  記憶體限制: 128 mb

提交: 559  解決: 80

[提交][狀態][討論版]

求13的n次方(12有多組測試資料,每組測試資料一行,即整數n。以檔案結尾符結束。

輸出13的n次方的最後三位數

13
20
253
801
64位整型用long long 表示,格式串為"%lld"

#include

int fun(long long n)

return t;

} int main()

時間限制: 1 sec  記憶體限制: 128 mb

提交: 429  解決: 154

[提交][狀態][討論版]

小明有n本新書,要借給a、b、c三位小朋友。只借一次。若每人每次只能借一本,則可以有多少種不同的借法?

有多組測試資料,輸入整數n (5≤n≤1000),輸入到檔案結尾符為止。

借法總數。

5
6
7
8
60
120
210
336
#include

int main()

時間限制: 1 sec  記憶體限制: 128 mb

提交: 102  解決: 19

[提交][狀態][討論版]

過橋問題。有n(n≥2)個人在晚上需要從x地到達y地,中間要過一座橋,過橋需要手電筒(而他們只有1個手電筒),每次最多兩個人一起過橋(否則橋會垮)。n個人的過橋時間依次存入陣列t[n]中,分別為:t[0], t[1], ……, t[n-1]。過橋的速度以慢的人為準!注意:手電筒不能丟過橋!問題是:程式設計求這n個人過橋所花的最短時間。

有多組測試資料,

每組資料先輸入乙個人數n,然後輸入這n個人過橋所花的時間。

輸出對應的最短時間。

4 1 2 5 10
4 5 2 10 1
17
17

#include

void fun(int *a,int n)

if(i!=k) }

} int main()

else

} }

return 0;

} 時間限制: 1 sec  記憶體限制: 128 mb

提交: 265  解決: 110

[提交][狀態][討論版]

將任一整數轉換為二進位制數形式並輸出。

有多行資料,每行輸入一十進位制數字n(1≤n≤2147483647)。輸入到檔案結尾符為止。

輸出n的二進位制表示

1
2
3
4
5
6
7
1
10
11
100
101
110
111

#include

#include

void f(long long num) }

int main(void)

return 0;

} 時間限制: 1 sec  記憶體限制: 128 mb

提交: 205  解決: 28

[提交][狀態][討論版]

中國有名俗語叫「三天打魚兩天曬網」。小強從2023年1月1日起開始「三天打魚兩天曬網」,問這個人在以後的某一天中是在「打魚」,還是在「曬網」?

輸入日期,格式是yyyy-mm-dd,例如2012-01-23。輸入到檔案結尾符為止。

如果小強在打魚,那麼輸出「he is fishing.」。如果小強子在曬網,那麼輸出「heis drying nets.」

2000-01-01
2000-01-05
he is fishing.
he is drying nets.

趣味C語言

一 詞法陷阱 1.int a 021 則a的值是多少?021被編譯器認為是八進位制 2.z b p 與z b p的區別 前者 被看成乙個標示符 二 語法陷阱 1.運算子的優先順序問題 依次降低 1 陣列下標 函式呼叫 操作各結構成員選擇操作符 和.結合方式 從左到右 2 單目操作符 結合方式 從右到...

趣味C語言

1.演示多個字元從兩端移動,向中間匯聚。include includeint main system pause return 0 2.模擬使用者登入情景,並且只能登入三次。只允許登入三次,如果密碼正確則提示登入成功,如果三次均輸入錯誤,則退出程式。include include includein...

MySQL趣味題 Hankson的趣味題

思路 由於x是b1的約數,所以x的質因子一定也是b1的質因子,我們可以對b1的每個質因子p,分別計算a0,a1,b0,b1分別 包含多少個p.然後討論x可能含有幾個p即可 include include include include include include using namespace ...