碰到兩道有意思的題目,記錄一下。
題目一:
問,對於任意乙個正整數,是否存在乙個它的倍數全是由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是無狀態的,面向連線和無狀態怎麼感覺好像有點矛盾呢?不矛盾,乙個是面向鏈結的,乙個是無連線的。面向鏈結的可靠些,無連線的就不那麼...