7 条题解

  • 2
    @ 2025-1-26 22:38:08
    #include <iostream>
    using namespace std;
    
    const int NUMBERS_PER_TICKET = 7;
    const int NUM_PRIZES = 7;
    
    int main() {
        int n;
        cin >> n;
        int winningNumbers[NUMBERS_PER_TICKET];
        // 读取中奖号码
        for (int i = 0; i < NUMBERS_PER_TICKET; ++i) {
            cin >> winningNumbers[i];
        }
    
        int prizeCounts[NUM_PRIZES] = {0};  // 初始化各奖项中奖张数为 0
    
        // 处理每张彩票
        for (int i = 0; i < n; ++i) {
            int ticketNumbers[NUMBERS_PER_TICKET];
            // 读取当前彩票的号码
            for (int j = 0; j < NUMBERS_PER_TICKET; ++j) {
                cin >> ticketNumbers[j];
            }
    
            int matchCount = 0;  // 记录当前彩票与中奖号码相同的数量
            // 统计相同号码的数量
            for (int j = 0; j < NUMBERS_PER_TICKET; ++j) {
                for (int k = 0; k < NUMBERS_PER_TICKET; ++k) {
                    if (ticketNumbers[j] == winningNumbers[k]) {
                        ++matchCount;
                        break;
                    }
                }
            }
    
            // 根据相同号码的数量确定中奖等级并更新对应奖项的中奖张数
            if (matchCount > 0) {
                prizeCounts[NUM_PRIZES - matchCount]++;
            }
        }
    
        // 输出各奖项的中奖张数
        for (int i = 0; i < NUM_PRIZES; ++i) {
            cout << prizeCounts[i]<<" ";
        }
        cout << endl;
        return 0;
    }
    这个题解是我的思路加上AI给的修改,下面两位学长的方法很好,是对我们输的号码,一个一个进行判断,但我的思路是把所有的号码全部输入完,然后进行两层for循环找到我们的数,然后又通过一个数组来储存答案,发现了中奖个数与数组下标的关系,然后进行储存,最后进行输出。
    
    • 1
      @ 2024-10-11 12:49:20

      学长的方法

      #include <stdio.h>

      int main () {

      int n;

      scanf("%d", &n);

      int a[7];

      int b;

      for (int i = 0; i < 7; i++) {

      scanf("%d", &a[i]);

      }

      int t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0;

      for (int k = 0; k < n; k++) {

      int t0 = 0;

      for (int p = 0; p < 7; p++) {

      scanf("%d", &b);

      for (int q = 0; q < 7; q++) {

      if (b == a[q]) {

      t0++;

      break;

      }

      }

      }

      if (t0 == 7) {

      t1++;

      } else if (t0 == 6) {

      t2++;

      } else if (t0 == 5) {

      t3++;

      } else if (t0 == 4) {

      t4++;

      } else if (t0 == 3) {

      t5++;

      } else if (t0 == 2) {

      t6++;

      } else if (t0 == 1) {

      t7++;

      }

      }

      printf("%d %d %d %d %d %d %d\n", t1, t2, t3, t4, t5, t6, t7);

      return 0;

      }

      • 1
        @ 2024-5-7 19:43:28
        #include <stdio.h>
        int main()
        {
            int times,time;
            scanf("%d",&times);
            int a[9],b,i,j,t,r[9]={0};
            for(i=1;i<=7;i++)scanf("%d",&a[i]);
            for(time=1;time<=times;time++)
            {
                t=0;
                for(i=1;i<=7;i++)
                {
                    scanf("%d",&b);
                    for(j=1;j<=7;j++)
                        if(b==a[j]){t++;break;}
                }
                r[t]++;
            }
            for(i=7;i>=1;i--)printf("%d ",r[i]);
            return 0;
        }//
        
        • @ 2025-1-26 21:58:45

          确实牛的思路

      • 0
        @ 2025-12-9 16:35:09
        #include<iostream>
        #include<algorithm>
        
        using namespace std;
        const int N = 8;
        int n,a[N];
        
        int main()
        {
            int ans[8]={0};
            cin>>n;
            for(int i = 0 ; i < 7 ; i ++)
            {
                cin>>a[i];
            }
            sort(a,a+7);
            while(n--)
            {
                int q[N];
                int hh = 0,tt = -1;
                for(int i = 0 ;i < 7 ; i++)
                {
                    int x;
                    cin>>x;
                    q[++tt] = x;
                }
                sort(q,q+7);
                int mach = 0;
                int i = 0 ;
                while(i<7&&hh<7)
                {
                    if(a[i]==q[hh])
                    {
                        hh++;
                        mach++;
                    }
                    else if(a[i]>q[hh])
                    {
                        hh++;
                    }
                    else 
                    {
                        i++;
                    }
                }
                if(mach>=1&&mach<=7)
                    ans[7 - mach] ++;
            }
            for(int i = 0 ; i < 7 ; i ++) cout<<ans[i]<<" ";
        }
        
        • 0
          @ 2025-11-24 21:01:25

          #include<stdio.h> int main(){ int n; int c=0,d=0,e=0,f=0,g=0,h=0,k=0; scanf("%d",&n); int b[7],p[7]; for(int i=0;i<7;i++){ scanf("%d",&b[i]); p[i]=b[i]; } int a[n][7]; for(int i=0;i<n;i++){ for(int j=0;j<7;j++){ scanf("%d",&a[i][j]); } } int count=0; for(int i=0;i<n;i++){ for(int j=0;j<7;j++){ for(int o=0;o<7;o++){ if(b[o]==a[i][j]){ b[o]=34; count++; } } } for(int y=0;y<7;y++){ b[y]=p[y]; } switch(count){ case 7: c++;break; case 6: d++;break; case 5: e++;break; case 4: f++;break; case 3: g++;break; case 2: h++;break; case 1: k++;break; case 0: break; } count=0; } printf("%d %d %d %d %d %d %d",c,d,e,f,g,h,k); return 0;

          }

          • 0
            @ 2025-11-3 9:12:26
            #include<stdio.h>
            
            int main()
            {
                int n;
                scanf("%d", &n);
                int arr[7];
                for(int i=0;i<7;i++)
                {
                    scanf("%d", &arr[i]);
                }
                int brr[n][7];
                for(int i=0;i<n;i++)
                {
                    for(int j=0;j<7;j++)
                    {
                        scanf("%d",&brr[i][j]);
                    }
                }
                int a=0,b=0,c=0,d=0,e=0,f=0,g=0;
                for(int i=0;i<n;i++)
                {
                    int sum=0;
                    for(int j=0;j<7;j++)
                    {
                        for(int k=0;k<7;k++)
                        {
                            if(arr[k]==brr[i][j])
                            {
                                sum++;
                                break;
                            }
                        }
                    }
                    switch(sum)
                    {
                        case 7: a++;
                        break;
                        case 6: b++;
                        break;
                        case 5: c++;
                        break;
                        case 4: d++;
                        break;
                        case 3: e++;
                        break;  
                        case 2: f++;
                        break;
                        case 1: g++;
                        break;
                        default:
                        break;
                    }
                }
                printf("%d %d %d %d %d %d %d", a,b,c,d,e,f,g);
                return 0;
            }
            
            • 0
              @ 2025-10-12 12:19:57
              #include<stdio.h>
              int main()
              {
                      int n;
                      scanf("%d",&n);
                      int caipiao[7];
                      for(int i=0;i<7;i++)
                      {
                          scanf("%d",&caipiao[i]);
                      }
                      int a[n][7];
                      for(int i=0;i<n;i++)
                      {
                          for(int j=0;j<7;j++)
                          {
                              scanf("%d",&a[i][j]);
                          }
                      }
                      int b[7]={0};
                      for(int i=0;i<n;i++)
                      {
                          int count=0;
                          for(int j=0;j<7;j++)
                          {
                              for(int k=0;k<7;k++)
                              {
                                  if(a[i][j]==caipiao[k])
                                  {
                                    count++;
                                    break;
                                  }
                              }
                          }
                          switch(count)
                          {
                              case 7:
                              b[6]++;
                              break;
                              case 6:
                              b[5]++;
                              break;
                              case 5:
                              b[4]++;
                              break;
                              case 4:
                              b[3]++;
                              break;
                              case 3:
                              b[2]++;
                              break;
                              case 2:
                              b[1]++;
                              break;
                              case 1:
                              b[0]++;
                              break;
                          }
                      }
                      for(int i=6;i>=0;i--)
                      {
                          printf("%d ",b[i]);
                      }
                  return 0;
              }
              
              • 1

              信息

              ID
              100
              时间
              1000ms
              内存
              256MiB
              难度
              8
              标签
              (无)
              递交数
              1046
              已通过
              132
              上传者