精華區beta MATLAB 關於我們 聯絡資訊
我覺得這是數學問題耶~~~ 記不記得我們國中就學過, 判斷一個數是否能被3整除, 直接看他每個位數相加後是否能被三整除, 所以"12",因為1+2=3能被3整除,故12能被3整除。 同理,"14",因為1+4=5,5/3會餘2,所以14/3會餘2。 因此,再看你的問題的話,你可以改個方式寫, 把所有數字的每一位數相加,然後再除以3,看餘多少就可以啦~~ 你可以先計算寫到第201位是哪一個數, 你似乎已經知道是103?假設是103好了, 那此時你可以計算從1到103中, 1、2、...、9各出現幾次, 再把他們各乘以出現的次數, 然後再一次除以3,就可以啦~~ 至於各出現幾次,其實也很好算, 1~9在1~99中當個位數的次數各有10次, 然後加上1~9當十位數的次數各有10次, 至於100、101、102、103的話,就是1+1+1+1+2+1+3=10, 1+2+3+...+9=45,45*20=900,900+10=910,910/3=303餘1, 所以你要算的答案是1囉~~ 如果還要更精簡一點,那麼3、6、9可以不要算進去, 也就是說,直接算1+2+4+5+7+8=27,27*20=540, 540+10=550,550/3=183餘1,所以答案還是餘1。 嗯~~這個過程要寫成程式,應該會相對容易許多?! ----- 嗯~~野人獻曝一番...如果有什麼說錯的,麻煩請各位大大指正。謝謝! ※ 引述《Kazarinov (~~~~~~~~~~~~~~~~~~~~~~~)》之銘言: : Q:把由1開始的自然數依次寫下去,一直寫到201位為止: : 12345678910111213…….。這個數除以3的餘數是幾? : A: : x=0; : for i=1:9 : x=x*10+i : end : for i=10:99 : x=x*100+i : end : for i=100:103 : x=x*1000+i : end : mod(x,3) : ~~~~~~~~~~~~~~~~~ : 答案不是應該0,1,2其中之一嗎 : 可是我跑出來卻不是 : 麻煩大家賜教!! : 或是提供解此題的其他方法也行 : 多謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.85.7.111 ※ 編輯: HeathLedger 來自: 210.85.7.111 (04/24 02:32) ※ 編輯: HeathLedger 來自: 210.85.7.111 (04/24 02:34)
Kazarinov:我已經先用手算出答案是1了...只是想再用Matlab驗算 04/24 08:37