题目
Description
小明非常喜爱物理,有一天,他对物理实验室中常用的弹簧拉力计产生了兴趣。实验室中有两种质量不同的砝码,小明分别用a个第一种砝码放在弹簧拉力计上和b个第二种砝码放在弹簧拉力计上,假设每增加单位重量的砝码,弹簧拉力计的长度增加1,那么两次称量弹簧拉力计的长度差是多少呢?(假设拉力计不发生非弹性形变)
Input
第一行一个整数T,表示有T组数据。
之后T行,每行数据包含四个正整数,分别表示第一种砝码重量a,第一种砝码数量b,第二种砝码重量c,第二种砝码数量d。
T<25
0 < a,b,c,d<=100Output
对于每组数据,输出一个正整数,表示弹簧拉力计的长度差值。
Sample Input
3
1 2 3 4
1 4 2 2
1 3 2 1Sample Output
10
0
1
总结
本题作为安徽省2016程序设计竞赛的第一题,可以说是个送分题,完全不需要任何思考,读完题就能得到答案,附上代码
#include <iostream>
#include <cmath>
using namespace std;
int main (void){
int TestTime = 0, Times = 0;
cin >> TestTime;
while (Times++ < TestTime){
int a = 0, b = 0, c = 0, d = 0;
cin >> a >> b >> c >> d;
cout << abs((a*b) - (c*d)) << endl;
}
}
输入两句,计算和输出共用一句。这里有个坑,计算a*b-c*d的值(或者反过来)可能是个负数,直接输出不符合题目要求,所以输出前要验证结果。这里我直接使用cmath中的abs(),获取一个数的绝对值。尽管对题目并没有什么影响,但是可以缩短代码,更加简洁。