我是個對電腦科學有興趣的學生,我會貼上我的學習歷程及生活心情,也請大大們多多指教。 :)

2015年6月11日 星期四

[UVa] 10290 - {Sum+=i++} to Reach N

題目網址: https://goo.gl/1vzl9i

題意:
(from luckycat)


解法:
假設一串有 m 項的數列首項為 a 滿足此 m 項的和為 n ,即是 (a+(a+m-1))*m/2 = n ,
則可以知道 2n = (2a + m -1)*m,分析得知 若 m 是偶數,則 (2a+m-1) 是奇數;反之,若 m 是奇數,則 (2a+m-1) 是偶數
也就是說 若 2n 能夠拆成 某個奇數乘某個偶數,就能與一組數列和相等。
也就是找出 2n 有幾個 "奇數的因數",也就是 n 有幾個 "奇數的因數"
把 n 質因數分解,算出有幾個 奇數的因數 即是答案。

TAG: Math

注意:

程式碼:

沒有留言:

張貼留言

任何意見都樂意傾聽