Codeforces Round #304 (Div. 2) A. Soldier and Bananas

http://codeforces.com/problemset/problem/546/A

题意:
一个士兵想买点香蕉。第一根为k元,第二根为2k元,以此类推。
他有n元钱,问他需要向朋友借多少钱才能买w根香蕉。

PS:他有可能不用向朋友借钱(还有剩余)。

代码:

1
2
3
4
5
6
7
8
9
10
11
12
#include <bits/stdc++.h>
using namespace std;

int main() {
int k, n, w, S = 0;
cin >> k >> n >> w;
for (int i = 0; i <= w; i++) {
S += i * k;
}
cout << max(S - n, 0);
return 0;
};

或则用等差数列的求和公式。

代码:

1
2
3
4
5
6
7
8
9
10
#include <bits/stdc++.h>
using namespace std;

int main() {
int k, n, w, S = 0;
cin >> k >> n >> w;
S = (k + w * k) * w / 2;
cout << max(S - n, 0);
return 0;
};