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.注意輸出格式注意輸出格式注意輸出格式,重要的事說三遍。第一次沒有注意前面有空格。