牛牛
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
其中方法一WA
方法二,方法三AC
重點是多重for嵌套只要判斷是否有牛即可;
方法二
#include<stdio.h> int main(void) {int a[5];int n,o;int sum1;while(scanf("%d",&n) !=EOF){if(n<=100){ for(o=0;o<n;o++){int l,b;for(l=0;l<5;l++){scanf("%d",&b);a[l]=b; }int b1=0,b2=0;int i,j,k,i1;//start forfor(i=0;i<=2;i++){for(j=i+1; j<=3; j++){for(k=j+1; k<=4; k++){if((a[i]+a[j]+a[k])%10==0){b1=1;sum1=0;for(i1=0;i1<=4;i1++){if(i1!=i && i1!=j && i1!=k){sum1+=a[i1];}}if(sum1%10==0){b2=1;} } } }}//End forif(b1)//有牛{if(b2)//牛牛{printf("Case #%d: Niu Niu\n",o+1);}else{printf("Case #%d: Niu %d\n",o+1,(sum1%10));}}else//沒牛{printf("Case #%d: Mei Niu\n",o+1);}}//End for o}//end for if}//end for whilereturn 1; }方法三
#include<stdio.h> int main() {int t,a[5];scanf("%d",&t);int b=0;while(t--){for(int i=0;i<5;i++){scanf("%d",&a[i]);} b++;int m=0,n=0,sum;for(int i=0;i<3;i++){for(int j=i+1;j<4;j++){for(int k=j+1;k<5;k++){if((a[i]+a[j]+a[k])%10==0){m=1;sum=a[0]+a[1]+a[2]+a[3]+a[4];if(sum%10==0)n=1;}}}}if(m==0)printf("Case #%d: Mei Niu\n",b);else if(m==1&&n==1)printf("Case #%d: Niu Niu\n",b);elseprintf("Case #%d: Niu %d\n",b,sum%10);}return 0;}總結