跟XxX_Stu玩游戏
描述
XxX_Stu 是10级的大队长,偷偷告诉你广工的新生杯就是在XxX_Stu 这届师兄们努力下创办下来的~~~时间真快,一转眼,XxX_Stu 就要退役了。在他临走前,我们选择聪明的你,跟他玩一次好玩的游戏:
游戏规则:
你和XxX_Stu每个人有俩张牌,一张红色,一张绿色。俩个人同时出一张牌。
如果你打出的牌是红色, XxX_Stu 也是红色,那么你可以加A分,悲惨的XxX_Stu 就要同时被扣A分;
如果你选的是绿色,XxX_Stu 也是绿色,那,你可以加B分,XxX_Stu 扣B分;
好啦,为了相对公平,那其他情况就是XxX_Stu 加C分,你被扣C分。
得分高的就可以成为比赛的胜利者。 为了不输给你,XxX_Stu肯定会想出他自己的决策去尽可能多的得到分数。知己知彼才能百战不殆。聪明的你还是先计算一下每场比赛你得分的数学期望吧。
输入
第一行一正整数:T ,代表有T组数据;
每组数据第一行 有三个整数:A,B,C,( A>=0,B>=0,C>=0 且a+b+c不等于0)
输出
输出答案,换行,结果保留6位小数。
输入样例 1
2
0 0 1
3 3 3
输出样例 1
-0.500000
0.000000
Solution
计算数学期望 + 保留小数
Code
cout << fixed << setprecision(6) << (double)1.0 / 4 * (a + b - 2 * c) << endl;
setprecision的用法
1.#include <iomanip>
2.使用setprecision()/cout.precision()之后,如果不在修改精度,则之后所有的数据输出都是按照设置的精度来输出
3.不加fixed输出有效数字(截断式)
double a = 1.22023145, b = 0.123655,c=2.2;
cout.precision(3);
//cout << setprecision(3);这里和用上面的那句程序效果是一样的。
cout << a << endl;//这里是3位有效数字,输出1.22
cout << b << endl;//输出0.123
cout << c << endl;//输出2.2
4.加fixed保留小数(四舍五入式)
cout << fixed;
cout << a << endl;//这里四舍五入,输出1.220
cout << b << endl;//这里四舍五入,输出0.124
cout << c << endl;//这里小数位数不够,需要补0,输出2.200