[問題] 有關ACM10994

看板C_and_CPP (C/C++)作者 (傲笑蒼鷹)時間16年前 (2009/03/07 21:30), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串1/2 (看更多)
我想請問有關ACM10994的問題 題目是有給兩個函數: F(n) = n%10 if(n%10)>0 0 if n = 0 F(n/10) Otherwise S(p,q) = F(i) i從p到q所有函數連加 這題起初我是用迴圈來做 起初先依照公式將p值帶入計算加總 直到p值成為10的倍數時 再看與Q的差距,決定是否以10或100加總跳動 不過由於出現個1 2147483647的資測 所以測試還是TLE 現在的想法是想說利用數學關係式來解 如果是p=1;q=100時 就(100/10)*45+(10/10)*45+1 (若最後項不為1則從1開始加到該項) 可是遇到起始不為1時似乎就不能用 請問這樣的想法是有錯嗎?還是說有少了什麼東西? 想法要怎樣修改才可以求得正解? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.235.205

03/07 21:52, , 1F
方向對了
03/07 21:52, 1F

03/07 21:52, , 2F
你現在有另一個比較好算的函數g(x)=f(1)+...+f(x)
03/07 21:52, 2F

03/07 21:53, , 3F
想個方法用g拼出f(p)+..+f(q)就行了
03/07 21:53, 3F
文章代碼(AID): #19idS2HY (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19idS2HY (C_and_CPP)