PAT乙级1088-----三人行 (20分)

1088 三人行 (20分)

输入样例 1:

48 3 7
 

输出样例 1:

48 Ping Cong Gai
 

输入样例 2:

48 11 6
 

输出样例 2:

No Solution

思路:
1.丙的能力值有可能是小数因此要用double

首次通过代码:
 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 }
View Code

猜你喜欢

转载自www.cnblogs.com/a982961222/p/12402040.html