鱼C论坛

 找回密码
 立即注册
查看: 1712|回复: 1

[已解决]c++题在线等,急!!

[复制链接]
发表于 2021-4-17 19:55:08 | 显示全部楼层 |阅读模式
30鱼币
祖父某一年写的纸中发现账单: 72只火鸡_679_美元 第一个和最后一个数字显然代表那些火鸡的总价格(这里用“_”表示),因为他们都消失了,现在无法辨认。问那两位数字是什么和一只火鸡的价钱是多少? 我们要写一个解决上述问题的一个通用版本的程序: N 只火鸡 $XYZ 火鸡的总数N是介于1和99,包括1和99。总价格总共有五位数,但是我们只可以看到在中间三位数。我们假设第一个数字不是是零,一只火鸡的价格是一个整数的美元,所有的火鸡成本相同。 给定N,X,Y,和Z,编写一个程序,猜测这两个褪色的数字和原始价格。如果有多个候选原价,输出最昂贵的一个。那么,程序是报告的是这两个褪色的数字和每只火鸡的最大价格。

输入输出格式
输入格式:

输入包含T测试案例。测试案例的输入文件的第一行的数量(t)是给定的。每个测试案例的第一行包含一个整数N(0<n<100),它代表的火鸡数量。在下面的行中,有三位十进制数字X,Y,和Z,中间用空格隔开,表示原价的_xyz_美元。

输出格式:

对于每个测试案例,你的程序必须做到以下几点。一个测试案例中,可以有一个以上的候选原始价格或者没有。在后面的测试案例中,你的程序要报告0。另外,如果有一个以上的候选原始价格,该程序是报告褪色的两位数和每只火鸡的最高价格。下面显示了样本的输入和输出三个测试案例。

输入输出样例:
样例输入1:

3
72
6 7 9
5
2 3 7
78
0 0 5
样例输出1:

3 2 511
9 5 18475
0
最佳答案
2021-4-17 19:55:09
  1. #include <iostream>

  2. using namespace std;

  3. void CalcAndOutput(int N, int x, int y, int z)
  4. {
  5.     if (x == 0 && y == 0 && z == 0)
  6.     {
  7.         printf_s("0\n");
  8.         return;
  9.     }

  10.     int high = 9, low = 9;
  11.     int price = 0;
  12.     int unit = 0;

  13.     for (int high = 9; high > 0; high--)
  14.     {
  15.         for (int low = 9; low >= 0; low--)
  16.         {
  17.             price = low + z * 10 + y * 100 + x * 1000 + high * 10000;

  18.             if (price % N == 0)
  19.             {
  20.                 printf_s("高位: %d 低位: %d 单价: %d", high, low, price / N);
  21.                 return;
  22.             }
  23.         }
  24.     }

  25.     printf_s("0\n");
  26. }

  27. void GetInput()
  28. {
  29.     int N = 0;
  30.     int x = 0, y = 0, z = 0;
  31.     char c = 0;

  32.     printf_s("请输入火鸡数量:");
  33.     cin >> N;
  34.     printf_s("请输入候选原始价格用空格隔开:");
  35.    
  36.     scanf_s("%d%*c%d%*c%d", &x, &y, &z);

  37.     CalcAndOutput(N, x, y, z);
  38. }

  39. int main()
  40. {
  41.     GetInput();

  42.     return 0;
  43. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-17 19:55:09 | 显示全部楼层    本楼为最佳答案   
  1. #include <iostream>

  2. using namespace std;

  3. void CalcAndOutput(int N, int x, int y, int z)
  4. {
  5.     if (x == 0 && y == 0 && z == 0)
  6.     {
  7.         printf_s("0\n");
  8.         return;
  9.     }

  10.     int high = 9, low = 9;
  11.     int price = 0;
  12.     int unit = 0;

  13.     for (int high = 9; high > 0; high--)
  14.     {
  15.         for (int low = 9; low >= 0; low--)
  16.         {
  17.             price = low + z * 10 + y * 100 + x * 1000 + high * 10000;

  18.             if (price % N == 0)
  19.             {
  20.                 printf_s("高位: %d 低位: %d 单价: %d", high, low, price / N);
  21.                 return;
  22.             }
  23.         }
  24.     }

  25.     printf_s("0\n");
  26. }

  27. void GetInput()
  28. {
  29.     int N = 0;
  30.     int x = 0, y = 0, z = 0;
  31.     char c = 0;

  32.     printf_s("请输入火鸡数量:");
  33.     cin >> N;
  34.     printf_s("请输入候选原始价格用空格隔开:");
  35.    
  36.     scanf_s("%d%*c%d%*c%d", &x, &y, &z);

  37.     CalcAndOutput(N, x, y, z);
  38. }

  39. int main()
  40. {
  41.     GetInput();

  42.     return 0;
  43. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 22:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表