• 1088 三人行(20 分)


    子曰:“三人行,必有我师焉。择其善者而从之,其不善者而改之。”

    本题给定甲、乙、丙三个人的能力值关系为:甲的能力值确定是 2 位正整数;把甲的能力值的 2 个数字调换位置就是乙的能力值;甲乙两人能力差是丙的能力值的 X 倍;乙的能力值是丙的 Y 倍。请你指出谁比你强应“从之”,谁比你弱应“改之”。

    输入格式:

    输入在一行中给出三个数,依次为:M(你自己的能力值)、X 和 Y。三个数字均为不超过 1000 的正整数。

    输出格式:

    在一行中首先输出甲的能力值,随后依次输出甲、乙、丙三人与你的关系:如果其比你强,输出 Cong;平等则输出 Ping;比你弱则输出 Gai。其间以 1 个空格分隔,行首尾不得有多余空格。

    注意:如果解不唯一,则以甲的最大解为准进行判断;如果解不存在,则输出 No Solution

    输入样例 1:

    48 3 7
    

    输出样例 1:

    48 Ping Cong Gai
    

    输入样例 2:

    48 11 6
    

    输出样例 2:

    No Solution
    甲的能力值是两位整数,乙也是百内整数,能力值是甲能力的个位十位转换,abs(甲 - 乙) / x = 乙 / y,丙的能力显然不一定是整数。
    代码:
    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <map>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    int m,x,y,X = -1,Y;
    double Z;
    void print(double t) {
        if(t > m)printf(" Cong");
        else if(t < m)printf(" Gai");
        else printf(" Ping");
    }
    int main() {
        scanf("%d%d%d",&m,&x,&y);
        for(int i = 10;i <= 99;i ++) {
            int j = i % 10 * 10 + i / 10;
                int d = abs(i - j);
                if(d * y == j * x) {
                    X = i;
                    Y = j;
                    Z = j * 1.0 / y;
                }
        }
        if(X < 10) {
            printf("No Solution
    ");
        }
        else {
            printf("%d",X);
            print(X);
            print(Y);
            print(Z);
        }
    }
  • 相关阅读:
    QQ 2006 正式版协议变动情况分析
    开源3D方面的软件
    要使silverlight能够在IIS中顺利运行,需要设置的东西.
    文本框回车自动提交
    No installed Service named "Apache2"
    Javascript:三个函数ceil()、floor()、round()的区别
    基于Apache的Svn服务器配置
    下载:HD AUDIO For XP SP3修正补丁
    ViewState在执行Refresh后丢失
    C#关闭应用程序时如何关闭子线程
  • 原文地址:https://www.cnblogs.com/8023spz/p/9617450.html
Copyright © 2020-2023  润新知