作者h3615840 (傲笑蒼鷹)
看板C_and_CPP
標題[問題] 有關ACM10994
時間Sat Mar 7 21:30:41 2009
我想請問有關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
1F:推 Fenikso:方向對了 03/07 21:52
2F:→ Fenikso:你現在有另一個比較好算的函數g(x)=f(1)+...+f(x) 03/07 21:52
3F:→ Fenikso:想個方法用g拼出f(p)+..+f(q)就行了 03/07 21:53