546A.Soldier and Bananas
題目
翻譯
題目
一個士兵想在商店裡買
w
w
w香蕉。他得為第一個香蕉付
k
k
k美元,第二個香蕉付
2
k
2k
2k美元,以此類推(換言之,他得為第
i
i
i個香蕉付
i
i
i×
k
k
k美元)。
他有
n
n
n美元。他需要從他的士兵朋友那借多少美元才能買下
w
w
w香蕉?
輸入
第一行為3個正整數 k k k, n n n, w w w(1 ≤ k k k, w w w ≤ 1000,0 ≤ n n n ≤ 109),表示第一隻香蕉的價格,士兵手頭上的錢,士兵想買的香蕉數。
輸出
輸出一個整數 一 士兵需要從他朋友借多少錢,如果不需要借,輸出0。
分析
對於 k k k, 2 k 2k 2k… w w w k k k,提取公因式,就是算出1,2,… w w w這個數列的和,乘以 k k k,故使用數學公式計算總價格,減去手頭上的錢,得出結果。
程式碼
#include<iostream>
using namespace std;
int main()
{
int k, n, w;
cin >> k >> n >> w;
cout << (k * w * (1 + w) / 2 > n ? k * w * (1 + w) / 2 - n : 0);
/*判斷一下是不是可以不需要借*/
return 0;
}