EX14 彩票中奖 (lottery.pas/c/cpp)

【题目描述】
小明想试试运气去购买彩票,所以他开始研究彩票大乐透的玩法:
超级大乐透是指由购买者从01—35共35个号码中选取5个号码为前区号码,并从01—12共12个号码中选取2个号码为后区号码组合为一注彩票进行的投注。每注金额人民币2元。小明打算用自己的零花钱去试试运气,选择了一组心目中的幸运数字,买了一张彩票。如下图:

 

两天后,中奖号码公布,小明开始研究到底中了多少奖金。获奖方式如上右图:例如,中4+2就表示前区有4个数字相同,后区2个数字相同,获得三等奖,奖金3000元。

对照中奖号码对小明来说是一个头疼的问题,他找到你,希望你帮忙写一个程序,只要输入彩票号码和开奖号码,就可以知道奖金值。

 

输入
第一行7个整数,表示小明购买的彩票号码。前5个为前区号码,范围在1到35,保证不会重复;后2个为后区号码,范围在1到12,保证不重复。
第二行7个整数,表示开奖号码,前5个为前区中奖号码,范围在1到35,保证不重复且保证有序;后2个为后区号码,范围在1到12,保证不重复且有序。
注意,前区和后区是分开选数的,前区的数字可以和后区的数字相同。

输出
输出小明的中奖金额,未中奖输出0。

样例输入
2 7 8 14 18 6 11
2 7 8 14 18 6 11

样例输出
5000000
提示
【样例1解释】
前5加后2都相同,中一等奖,奖金为500万。

【输入输出样例2】
lottery.in
2 7 8 14 18 6 11
1 11 14 18 25 6 11
lottery.out
10
【样例2解释】
前区有14和18两个数字相同,后区6和11都相同,对照表格,中奖2+2为五等奖,奖金10元。

【数据范围】
对于40%的数据,若小明的号码与中奖号码相同,那么其位置也是相同的。例如中奖号码10位于第三个数,那么小明的彩票中如果出现10,也肯定在第三个数。
对于前70%的数据,小明的号码是系统产生的,前区和后区都是从小到大给出的。
对于最后30%的数据,小明的号码可能是手写的,前区或后区的数字不一定有序。

 

题解

 1 #include<stdio.h>
 2 int x[10],y[10],t[10][10];
 3 int main(){
 4     int a,b,i,j,u=0,v=0;
 5     t[5][2]=5000000;
 6     t[5][1]=250000;
 7     t[5][0]=t[4][2]=3000;
 8     t[4][1]=t[3][2]=200;
 9     t[4][0]=t[3][1]=t[2][2]=10;
10     t[3][0]=t[1][2]=t[2][1]=t[0][2]=5;
11     for(i=1;i<=7;i++)scanf("%d",&x[i]);
12     for(i=1;i<=7;i++)scanf("%d",&y[i]);
13     for(i=1;i<=5;i++)
14         for(j=1;j<=5;j++)
15             if(x[i]==y[j])u++;
16     for(i=6;i<=7;i++)
17         for(j=6;j<=7;j++)
18             if(x[i]==y[j])v++;
19     printf("%d\n",t[u][v]);
20     return 0;
21 }

摘自 http://www.cnblogs.com/codeisking/p/5571843.html

转载于:https://www.cnblogs.com/billw/p/5593672.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值