PAT(Basic Level) Practice : 1088 三人行 (20分)

1088 三人行 (20分)

两个坑

1.理解题意
直接穷举,奥里给!甲的值从10~99,每一个都根据题意进行判断,符合条件的就存储。
2.丙的能力值类型设置成double,不要设置成int

代码

#include <iostream>
#include <vector>
#include <string>
#include <cstdio>
//scanf printf防止超时
#include <algorithm>
//vector的sort
#include <sstream>
//转换
using namespace std;

#include<iomanip>
//精度

#include<cmath>
//round四舍五入取整
#include <map>



int main()
{
    int m,x,y;
    cin>>m>>x>>y;
    //穷举10~99
    vector<int> res;
    for(int i=10;i<100;i++)
    {
        int temp=(i%10)*10+i/10;
        int res1=abs(i-temp)*y;
        int res2=temp*x;
        if(res1==res2)
            res.push_back(i);

    }
    int n1,n2;
    double n3;
    if(res.size()==0)
    {
        cout<<"No Solution"<<endl;
    }else
    {
        n1=res[res.size()-1];

        n2=(n1%10)*10+n1/10;
        n3=1.0*n2/y;

        cout<<n1<<" ";
        if(n1>m)
            cout<<"Cong";
        else if(n1==m)
            cout<<"Ping";
        else
            cout<<"Gai";
        cout<<" ";
        if(n2>m)
            cout<<"Cong";
        else if(n2==m)
            cout<<"Ping";
        else
            cout<<"Gai";
        cout<<" ";
        if(n3>m)
            cout<<"Cong";
        else if(n3==m)
            cout<<"Ping";
        else
            cout<<"Gai";
        cout<<endl;
    }
    return 0;
}

posted @ 2020-10-01 02:21  韩天尊  阅读(73)  评论(0)    收藏  举报