PAT乙级1088-----三人行 (20分)
1088 三人行 (20分)
输入样例 1:
48 3 7
输出样例 1:
48 Ping Cong Gai
输入样例 2:
48 11 6
输出样例 2:
No Solution
思路:
1.丙的能力值有可能是小数因此要用double
首次通过代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<math.h> 4 5 6 7 int main(){ 8 int m,x,y; 9 int flag=1; 10 scanf("%d %d %d",&m,&x,&y); 11 for(int i=99;i>=10;i--){ 12 int j=i/10+(i%10)*10; 13 double k=(double)j/y; 14 if(fabs(k*x-abs(i-j))<=1e-10){ 15 printf("%d ",i); 16 if(m>i) printf("Gai "); 17 else if(m==i) printf("Ping "); 18 else printf("Cong "); 19 if(m>j) printf("Gai "); 20 else if(m==j) printf("Ping "); 21 else printf("Cong "); 22 if(m>k) printf("Gai"); 23 else if(m==k) printf("Ping"); 24 else printf("Cong"); 25 flag=0; 26 break; 27 } 28 } 29 30 if(flag) 31 printf("No Solution"); 32 return 0; 33 }