1171: 零起点学算法78——牛牛(有错误)(已AC)
1171: 零起点学算法78——牛牛
Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 951 Accepted: 437
[Submit][Status][Web Board]
Description
牛牛是一种纸牌游戏,总共5张牌,规则如下:
如果找不到3张牌的点数之和是10的倍数,则为没牛;
如果其中3张牌的点数之和是10的倍数,则为有牛,剩下两张牌的点数和对10取余数,余数是几,就是牛几,特别的当余数是0的时候是牛牛;
例如: 1 2 3 4 5, 1 + 4 + 5 = 0 (mod 10),2 + 3 = 5(mod 10), 为牛5。
Input
第一行输入一个整数T(T <= 100),表示有几组数据。每组数据占一行,5 个数, 每个数的范围都是1到10。
Output
见样例。
Sample Input
3
1 1 1 1 1
1 2 3 4 5
1 9 10 10 10
Sample Output
Case #1: Mei Niu
Case #2: Niu 5
Case #3: Niu Niu
Source
1 #include<stdio.h> 2 #include<math.h> 3 int main(){ 4 int t,a[5],o=0; 5 scanf("%d",&t); 6 while(t--){ 7 for(int i=0;i<5;i++){ 8 scanf("%d",&a[i]); 9 } 10 o++; 11 int m=0,n=0,sum; 12 for(int i=0;i<3;i++){ 13 for(int j=i+1;j<4;j++){ 14 for(int k=j+1;k<5;k++){ 15 if((a[i]+a[j]+a[k])%10==0){ 16 m=1; 17 sum=0; 18 for(int p=0;p<5;p++){ 19 if(a[p]!=a[i]&&a[p]!=a[j]&&a[p]!=a[k]) sum+=a[p]; 20 } 21 if(sum%10==0) n=1; 22 } 23 } 24 } 25 } 26 if(m==0) printf("Case #%d: Mei Niu\n",o); 27 else{ 28 if(n) printf("Case #%d:Niu Niu\n",o); 29 else printf("Case #%d:Niu %d\n",o,sum%10); 30 } 31 } 32 return 0; 33 }
运行无错误,提交 wrong answer
1 #include<stdio.h> 2 int main(){ 3 int t,a[5]; 4 while(scanf("%d",&t)!=EOF){ 5 int o=0; 6 while(t--){ 7 for(int i=0;i<5;i++){ 8 scanf("%d",&a[i]); 9 } 10 o++; 11 int m=0,n=0,sum; 12 for(int i=0;i<3;i++){ 13 for(int j=i+1;j<4;j++){ 14 for(int k=j+1;k<5;k++){ 15 if((a[i]+a[j]+a[k])%10==0){ 16 m=1; 17 sum=0; 18 for(int p=0;p<5;p++){ 19 if(a[p]!=a[i]&&a[p]!=a[j]&&a[p]!=a[k]) sum+=a[p]; 20 } 21 if(sum%10==0) n=1; 22 } 23 } 24 } 25 } 26 if(m){ 27 if(n){ 28 printf("Case #%d: Niu Niu\n",o); 29 } 30 else printf("Case #%d: Niu %d\n",o,sum%10); 31 } 32 else printf("Case #%d: Mei Niu\n",o); 33 } 34 } 35 return 0; 36 }
1.多组输入 尽量不要让程序自动结束。
2.注意输出格式注意输出格式注意输出格式,重要的事说三遍。第一次没有注意前面有空格。