周末的上午,秒一波水题!!!
注意:合理运用一些数学公式,可以让你节省很多时间哦。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
/**
* 题意:现有 n 美元,要去买 w 根香蕉,第 i 根香蕉 i*k 美元,需要借多少钱?
*
* @author TinyDolphin
* 2017/6/25 9:40.
*/
public class Main {
public static void main(String[] args) throws IOException {
StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
int firstBananaPrice; // 第一根香蕉的价格
int nowDollar; // 现有的美元
int bananaNum; // 需要买的香蕉数量
int needDollar; // 还需要借多少美元
while (in.nextToken() != StreamTokenizer.TT_EOF) {
firstBananaPrice = (int) in.nval;
in.nextToken();
nowDollar = (int) in.nval;
in.nextToken();
bananaNum = (int) in.nval;
//注意此处,香蕉的价值是等差数组,所以抛弃循环,直接使用数学公式进行运算。
needDollar = (firstBananaPrice + firstBananaPrice * bananaNum) * bananaNum / 2 - nowDollar;
out.println(needDollar > 0 ? needDollar : 0);
}
out.flush();
}
}