工作室课题学习情况总结(第二周)

第二周的工作室课题主要学习练习的内容是查找这一块的内容,其中我选取了个在做题是碰到的例子来展开讲解:

一.彩票

Description

为丰富男生节活动,贵系女生设置彩票抽奖环节,规则如下:

1、每张彩票上印有7个各不相同的号码,且这些号码的取值范围为[1, 33];

2、每次在兑奖前都会公布一个由七个互不相同的号码构成的中奖号码;

3、共设置7个奖项,特等奖和一等奖至六等奖。兑奖规则如下:

特等奖:要求彩票上的7个号码都出现在中奖号码中;

一等奖:要求彩票上的6个号码出现在中奖号码中;

二等奖:要求彩票上的5个号码出现在中奖号码中;

……

六等奖:要求彩票上的1个号码出现在中奖号码中;

注:不考虑号码出现的顺序,例如若中奖号码为23 31 1 14 19 17 18,则彩票12 8 9 23 1 16 7由于其中有两个号码(23和1)出现在中奖号码中,所以该彩票中了五等奖。

现已知中奖号码和李华买的若干彩票的号码,请你写一个程序判断他的彩票中奖情况。

Input

第一行一个正整数n,表示彩票数量,第二行7个整数,表示中奖号码,下面n行每行7个整数,描述n张彩票。

Output

7个空格隔开的数字,第1个数字表示特等奖的中奖张数,第2个数字表示一等奖的中奖张数,第3个数字表示二等奖的中奖张数……第7个数字表示六等奖的中奖张数。

*我的解题思路:

        简单粗暴直接来好吧,看着输入的例子来,第一行输入的是一个正整数n,表示彩票数量,那我就直接定义并初始化了一个int类型的变量n来接收它,第二行7要输入个整数表示中奖号码,所以我定义了一个int类型的数组的arr[Max]来接收输入的中奖号码,接下来我用了一个s[Max]数组来接收一组李华买的彩票号码,在两个for循环里面用s[Max]的每个元素依次对比arr[Max]里的每个元素,如果有对上的就让计数器count+1,最后计数器记录的是s[Max]里面中奖数字的个数,由于从特等奖到六等奖有7个阶段,所以下面用7-count就是对应的中奖等级了,然后我在用了一个r[Max]来把中奖等级存入相应位置,如特等奖存放在r[0],二等奖存放在r[2],每个中奖等级上中了几次奖就让其数组上的数字+1,然后把从s[Max]接收李华的彩票号码到这放入到一个大的while循环其以彩票数n为条件,每存完一组s[]就让x++直到x==n,最后输出r[]这个数组就AC了( ̄︶ ̄)↗ 

代码展示:

#include<iostream>
using namespace std;
const int Max = 10000;

int main()
{
	int n = 0;
	int arr[Max];
	int s[Max];
	int r[Max];
	int count = 0;
	int temp = 0; 
	int i;
	int x = 0;
	
	cin >> n;
	for(i = 0 ; i < 7 ; i++)
	{
		cin >> arr[i];
	}
	
while(x<n)
{

	for(int i = 0 ; i < 7 ; i++)
	{
		cin >> s[i];
	}
	

	for(int i = 0 ; i < 7 ; i++)
	{
		for(int j = 0 ; j <7 ; j++)
		{
			if(arr[i] == s[j])
			{
				count++;
			}
		}
	}
	temp = 7-count;
	r[temp]++;
	x++;
	count = 0;
	
}	
	for(int i = 0 ; i < 7 ; i++)
	{
		cout << r[i] << " ";
	}
	return 0;
}

 *注:本文章为作者自己工作室课题学习笔记,并非学术性文章,不喜勿喷! 欢迎大佬评论指点迷津,指出不足!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值