牛牛

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>
        #include <stdlib.h>
    
        /* run this program using the console pauser or add your own getch, system("pause") or input loop */
        
        int main(int argc, char *argv[]) 

{
    	int n;
    
    	while(scanf("%d",&n) !=EOF)
         {	
    	int a[n][7]; 
    	int i,j,k,l;
        if(n<=100)
        {    
        //初始化 
    			for(i=0;i<=n-1;i++){
    				
    				for(j=0;j<=6;j++){
    				a[i][j]=0;	
    			}		
    			}
    	//输入值		
    	for(i=0;i<=n-1;i++){
    		
    		for(j=0;j<=4;j++){
    		
    		scanf("%d",&a[i][j]);
    		a[i][5]+=a[i][j];
    	}	
    	}
    	//判断牛牛 
    	int t=0;
    	for(i=0;i<=n-1;i++){
    				
    		for(j=0;j<=2;j++){
    			
    			for(k=i+1;k<=3;k++){
    		
    				for(l=k+1;l<=4;l++){
    		
    					if(	(a[i][j]+a[i][k]+a[i][l])%10==0){
    							if((a[i][5]-a[i][j]-a[i][k]-a[i][l])%10==0)
    							{
    									a[i][6]=10;
    							}
    							else{
    								if(a[i][6]<(a[i][5]-a[i][j]-a[i][k]-a[i][l])%10)
    									a[i][6]=(a[i][5]-a[i][j]-a[i][k]-a[i][l])%10;
    							}
    						}	
    					}
    				}	
    			}
    		} 
    	//输出 
    	if(a[i][6]==0)
    	printf("Case #%d: Mei Niu\n",i+1);
    	else if(a[i][6]==10)
    	printf("Case #%d: Niu Niu\n",i+1);
    	else
    	printf("Case #%d: Niu %d\n",i+1,a[i][6]);
    
    }	
    }
    }
    	return 0;
    }

方法二

#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 for
                for(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 for
                if(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 while
    
    return 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);
		 else
		 printf("Case #%d: Niu %d\n",b,sum%10);
	}
	return 0;
 } 
全部评论

相关推荐

赏个offer求你了:友塔HR还专门加我告诉我初筛不通过😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务