看板 C_and_CPP 關於我們 聯絡資訊
一個迴圈也行: int i , n ; ostringstream ostr ; n = 10 ; for ( i = 1 ; i <= n ; ++i ) { ostr << ( i > 1 ? "+" : "" ) << i ; cout << ostr.str() << "=" << i*(i+1)/2 << endl; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.25.21
dendrobium:i等於1的狀況適合拿到for前面做 12/31 12:39
dendrobium:而且效能瓶頸是在IO XD 12/31 12:40
dendrobium:套公式沒比較快, 直接加上來就好了 12/31 12:48
MOONRAKER:有兩隻腳何必只用一隻腳跑步… 12/31 15:15
diabloevagto:這樣寫簡單好懂,我覺得挺不錯啊 12/31 16:05
linotwo:這樣寫確實有比較快 12/31 16:07
linotwo:測試用程式碼 http://codepad.org/Y2ZE0F8d 12/31 16:07
dendrobium:好像有人誤解我的意思... 用一個for迴圈其實並不需要 01/02 01:07
dendrobium:用公式 01/02 01:08
linotwo:用不用公式在這裡對效能的影響應該是微乎其微。 01/02 01:50
EdisonX:重點是..這個公式寫法可能導致 over flow. 01/02 10:24
linotwo:直接用加的可以容許的範圍是用公式的 2^(1/2) 倍。 01/02 12:29
linotwo:如果要避免 overflow,就要避免輸入範圍超出限制。 01/02 12:32
xvid:我會用stringstream來存輸出 其實文字和加法都可以複製利用 01/02 22:30
xvid:不用每次都重算加法和生成字串 io只要最後一次全部印出就好啦 01/02 22:32