1729.彩票中奖

时间限制:1000MS 内存限制:256000KB

题目描述

小明怀着激动的心,用颤抖的手购买了 n (1<= n <=10000)张彩票,满怀期待的等到了开奖的那一天。

小明先仔细阅读了中奖规则:
  1、中奖号码是7个由1~33之间各不相同的数组成,每张彩票也是由7个1~33之间不同的数组成。
  2、共设置以下奖项
     特等奖:7个号码都出现在中奖号码中。
     一等奖:6个号码出现在中奖号码中。
     二等奖:5个号码出现在中奖号码中。
     三等奖:4个号码出现在中奖号码中。
     四等奖:3个号码出现在中奖号码中。
     五等奖:2个号码出现在中奖号码中。
     六等奖:1个号码出现在中奖号码中。
   
 注:不用考虑中奖号码和彩票号码的顺序问题,只要出现即可。

由于购买的彩票可能太多,小明请你写程序帮忙统计他的中奖情况如何。

输入

第一行包含一个正整数 n,表示小明买的彩票张数;

第二行存放了 7 个介于 1 到 33 之间的整数,表示中奖号码;

在随后的 n 行中每行都有 7 个介于 1 到 33 之间的整数,分别表示小明所买的 n 张彩票。

输出

输出小明所买的彩票的中奖情况(中奖的张数)。首先输出特等奖的中奖张数,然后依次输出一等奖至六等奖的中奖张数。

输入样例 复制
2
23 31 1 14 19 17 18
12 8 9 23 1 16 7
11 7 10 21 2 9 31
输出样例 复制
0 0 0 0 0 1 1

code:

#include<bits/stdc++.h>
using namespace std;
long long d[8],c[8],n,v,jd,s[10010],d1,j2,j3,j4,j5,j6,d0;
int main()
{
    cin>>n;
    for(int i=0;i<=n;i++)
    {
        if(v==0)
        {//先输入可中奖号码 
            for(int j=1;j<=7;j++) cin>>d[j];
            v++;
        }
        else
        {
            for(int j=1;j<=7;j++)
            {
                cin>>c[j];
                for(int q=1;q<=7;q++)
                  if(c[j]==d[q]) jd++;//对比是否中奖 (这里应该可以直接退出循环) 
            }//第i个彩票中了几等奖 
            if(jd==1) s[i]=1;
            else if(jd==2) s[i]=2;
            else if(jd==3) s[i]=3;
            else if(jd==4) s[i]=4;
            else if(jd==5) s[i]=5;
            else if(jd==6) s[i]=6;
            else if(jd==7)s[i]=7;
        }
        memset(c,0,sizeof(c));//清零 (这句应该可以去掉)
        jd=0;//清零 
    }
    for(int i=1;i<=n;i++)
    {//重新查看每个彩票,统计不同奖的中奖个数 
        if(s[i]==6) d1++;
        else if(s[i]==5) j2++;
        else if(s[i]==4) j3++;
        else if(s[i]==3) j4++;
        else if(s[i]==2) j5++;
        else if(s[i]==1) j6++;
        else if(s[i]==7) d0++;
    }
    cout<<d0<<" "<<d1<<" "<<j2<<" "<<j3<<" "<<j4<<" "<<j5<<" "<<j6;
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值