我害怕自己被黑暗吞噬,企圖寫一些似乎無關緊要的東西,分開注意力……其實我最近發現自己有個特點,就是時不時會回想過去遇到過的一些問題,得出一些新的結論或者尋求一些新的解法,我的問題也不一定是什麼難題,有時無非是些能稍微動動腦筋的東西罷了。但不管怎樣,我自己還是挺喜歡自己這個特點的,尤其在這個迷惘的季節。
這是我差不多一年前碰到的筆試題目,就是我今天離開的這個公司的筆試題目,如果做過這種題目,我想一點難度都沒有,即使沒做過,難度應該也不大,但不知道是不是當時我不在狀態,或者由於前面的題目太多(7頁紙),做到後面自己的耐力就不行了,反正是做錯了,題目是這樣的:
有100盞燈,給它們編號從1開始到100,初始狀態全亮,然後從第一盞燈開始改變燈的狀態,凡是序號為1的整數倍的燈狀態全部置反(亮的變滅,滅的變亮),接著從第二盞燈開始改變燈的狀態,凡是序號為2的整數倍的燈狀態全部置反,完之後從第三盞燈開始……依此類推,直到從第100盞燈開始執行這個操作為止。請問操作全部完成後這100盞燈的狀態。
當時我想出了個錯誤的答案,後來經過面試官提醒,我也承認了自己確實做錯了,要求給我加時,但幾分鐘下來我還是沒想出來,只好詢問答案,面試官說:「答案不重要了,知道的很快的。」面試結束後我回到公司(嗯,當時請半天假去的)還是想不出來,結果自己編了個程式來算,答案是肯定算出來了,但自己還是百思不得其解,想想還真有意思。那次面試的結果當然是成功的了,也許是因為我過五關斬六將把前面的技術題都搞定了,他們也不會在乎我後面這道題目。
現在離開公司了,以一種我不太期望的方式……不知怎麼又想起這道題目,但腦神經似乎被小搗了一下,突然發現這道題目如此簡單……
燈的初始狀態是亮,被置奇數次就會滅,被置偶數次就會亮,那麼只需要分析什麼數會被置奇數次,什麼數會被置偶數次就可以了。首先想想質數,除了1和自己,不會被任何數整除,那從1開始,不管中間經過多少數,它的狀態都一直是「滅」,直到從它自己開始,才會被置第二次,變成亮,所有質數結果都是亮的了,2,3,5,7,11……等都是亮,那麼更多的數不是質數,狀態如何?其實學會了對質數序號的思考,其它也差不多,拿6和9做一下實驗就知道了,6在以序號1,2,3,6作為開始的時候會被反置,其中2和3正好一對,能將6整除,乘積又是6;另外看一下9,作為同樣非質數的9,在序號1,3,9作為開始的時候會被反置,為什麼不是被反置4次而是3次?其實本來應該是4次,3乘3正好等於9,但不巧的是3和3重複了,構不成一對,所以是被反置3次,那16呢?25呢?一樣的,16在1,2,4,8,16作為開始的時候被反置,也是奇數次,那麼1,4,9,16,25,36……這種自然數的乘方數其實都同理,被反置奇數次,最終狀態是滅,其餘的數都是被反置偶數次,結果還是亮的。這就是答案……
題目確實沒什麼,但我納悶我當時為什麼想不明白呢?也許這才是真正的難題。
寫完這篇文章的時候又是第二天了,最近總熬夜,而且想不出什麼合適的理由,希望自己早日走出陰霾,今年成為不平凡的一年。^o^
#include
"stdafx.h
"#include
<
string
.h>
char
lights[
101];
intmain(
intargc,
char
*argv)
for(i=1
; i<=
100; i++)
}printf(""
);for(i=
1; i
<=
100; i++)
return0;
}
記一道智力題
首先,由題意三個數都為正整數,且某兩個數的和等於第三個,且第一輪提問中三個人都說不確定可知,三個人中沒有兩兩相同的數存在。這樣就排除了a,d 然後看選項b 站在第三個人的立場,看到其他兩個人是36,108則他自己可以為144或72。這時第三個人如果假設他是72,那麼在108那個人的眼中本來為36或1...
一道意思的智力題
據說是世界上目前最好的智力題目。好的智力題目的標準是 1 一般人做不出來或者做不下去。2 不需要知識。看仔細了 有十二個桌球特徵相同,其中只有乙個重量異常 重或者輕 現在要求用一部沒有砝碼的天平稱三次,將那個重量異常的球找出來。評分標準 1 30分鐘以內做出來 智力很高很高很高,不知道有多高。2 6...
一道有趣的智力題
題目 有12個外觀完全一樣的球,其中有乙個球和其他球的重量不一致,如何使用乙個天平稱3次得出不一致的球是哪個?筆者看到這題就立馬想到將球分成3組,將其中的兩組進行比較,然後如果不相等,就將重的那組進行兩兩劃分,在比較,在將兩個重的進行比較在進行比較。如果相等則將餘下的那組進行比較。相信這裡有不少園友...