[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