2015 HUAS Provincial Select Contest #1 A

题目:

Description

A soldier wants to buy w bananas in the shop. He has to pay k dollars for the first banana, 2k dollars for the second one and so on (in other words, he has to pay i·k dollars for the i-th banana).

He has n dollars. How many dollars does he have to borrow from his friend soldier to buy w bananas?

Input

The first line contains three positive integers k, n, w (1  ≤  k, w  ≤  1000, 0 ≤ n ≤ 109), the cost of the first banana, initial number of dollars the soldier has and number of bananas he wants.

Output

Output one integer — the amount of dollars that the soldier must borrow from his friend. If he doesn't have to borrow money, output 0.

题目大意:第i个香蕉的价格是ik元,求总共的价钱

算法用等差数列的求和公式:(1+i)*i/2;

代码:

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int k,w,n,sum,b,price;
 6     while(cin>>k>>n>>w)
 7     {
 8         if(k>=1&&w<=1000&&n>=0&&n<=1000000000)
 9     {
10         sum=(1+w)*w/2;
11         price=sum*k;
12         if(price>n)
13         {
14             b=price-n;
15             printf("%d
",b);    
16         }
17         else printf("0
");
18     }
19     }
20     return 0;
21 }

 

原文地址:https://www.cnblogs.com/huaxiangdehenji/p/4652273.html