[PAT解题报告] World Cup Betting
简单题,题目给了个买彩票的背景。本质就是给一个3 *
3的矩阵,找每一行的最大值出来,3个数相乘再乘以65%,再减去1,最终乘以2,表示一个人可以获得的最大利润,题目就是这么描述的,让计算的就是这个公式。直接做就可以,顺便说一下double里x
> y,最好写成x >= y + eps,
而eps一般取1e-8或者1e-10之类的小正数,因为double比较大小不准确。还有读入单一字符最好也别用"%c",因为这个会读空格,我建议使用"%s"。
代码:
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
const double eps = 1.e-8;
double a[3];
const char *s = "WTL";
int main() {
double answer = 1;
for (int i = 0; i < 3; ++i) {
int k = 0;
for (int j = 0; j < 3; ++j) {
scanf("%lf",&a[j]);
if (a[j] >= a[k] + eps) {
k = j;
}
}
if (i) {
putchar(' ');
}
putchar(s[k]);
answer *= a[k];
}
printf(" %.2lf\n", 2 * (answer * .65 - 1));
return 0;
}
原题链接: http://www.patest.cn/contests/pat-a-practise/1011



