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;
}