兩道有意思的題目

2022-05-08 09:51:08 字數 844 閱讀 2853

碰到兩道有意思的題目,記錄一下。

題目一:

問,對於任意乙個正整數,是否存在乙個它的倍數全是由1和0組成?

例如:1 * 1 = 1  

2 * 5 = 10  (2的5倍是10,10由1和0組成)

3 * 37 = 111 (3 的 37 倍是111,111 全部由1組成)

4 * 25 = 100 (4 的 25 倍是100,100 由1和0組成)

5 * 20 = 100 (5 的 20 倍是100,100由1 和 0 組成)

……現在需要判斷,隨便給乙個正整數,是否存在乙個它的倍數滿足題意?

答案是肯定的,對於任意乙個正整數,都存在乙個它的倍數,全部由1 和 0 組成。

證明方法需要用到鴿籠原理。

證明如下:

對於任意正整數 n 來說,有如下的數:

1,11,111,1111,……,1……1(最後乙個數共有n個1)

這 n 個數分別對n取餘,餘數的範圍在 0 ~n-1 之間。若餘數中有0,則可以找到乙個全由1組成的倍數;若餘數中沒有0,則 n 個餘數中必然有兩個是相等的(鴿籠原理)。

假設   x / n = a ...b

y / n = c ...b

則 (y - x) / n = (a - c)

因為 x、y 均是全由1組成,所以它們的差肯定是由 0 和 1組成,最後得證。

題目二:

圖形化證明: 1 + 3 + 5 + ... + (2 * n - 1) = n^2

注意是圖形化證明,不能用公式。

如下:

關於fork有意思的兩道題目

include include include intmain 這道問題並不難,最快的想法就是2 4 8 16 32,因為第一層的printf會有兩個程序列印,第二層會增加到4個,以此往下,就得出62行。include intmain 讓我們仍然採用上題的演算法,使用乙個佇列 首先,將主程序產生子程...

一道很有意思的題目

先列出 然後再開始解析 include stdafx.h include using namespace std class a class b public a void seta a data,int idx int tmain int argc,tchar argv for int i 0 i...

有意思的題目2

http狀態碼 cdn 內容分發網路是一種透過網際網路互相連線的電腦網路系統,提供高效能 可擴充套件性 及低成本的網路將內容傳遞給使用者。tcp協議是面向連線的,而http是無狀態的,面向連線和無狀態怎麼感覺好像有點矛盾呢?不矛盾,乙個是面向鏈結的,乙個是無連線的。面向鏈結的可靠些,無連線的就不那麼...