*在這裡所貼的程式碼僅是提供解決方法,有可能不是正確答案。
因為有些題目的測資小K可能沒去考慮到,但至少可以保證最正常的測資跑起來是正確的!
解題觀念:
該團人數等於該團住宿天數。且下一個旅行團的人數會是上一團人數再多一人。
因此人數累積=天數累積,因此用for迴圈累積天數,就可以知道第D天的人數狀況。
如果用圖形表示會發現,形狀類似梯形,因此計算天數可以帶梯形面積公式。
人數=面積=(1+5)*4/2=10 第10天時,居住人數為5人。 |
解題過程:
(*題目有限定測資10^15>32位元,因此宣告資料形態要用long。)
要宣告人數和天數的變數就不用再多說。
我上面雖然設定sum初始值為0,但那是當時在用另一種解法時設定(也就是小K忘記修改..),基本上不用設定初始值,宣告sum是為了要存放等等要計算的梯形面積。
for迴圈累積天數,我沒有設定終止條件,因為我在裡面用if條件式判斷,當人數累積大於等於天數時,印出當時居住人數並跳出迴圈。
EX:
輸入 3 10,進入sum計算(3+(3+1))*(1+1)/2=7,進入if判斷式=>7>=10(不成立),
在RUN一次for迴圈,進入sum計算(3+(3+2))*(2+1)/2=12,進入判斷式=>12>=10(成立)。
印出當時居住人數,break。
(如果有不正常測資部分小K會再跟學長們討論,有結果會再上傳修正版。)
(如果有
BY 小K
沒有留言:
張貼留言