[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



全部评论

相关推荐

我是小红是我:学校换成中南
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务