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

2018-06-18 00:11:19来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

【题目描述】
小明想试试运气去购买彩票,所以他开始研究彩票大乐透的玩法:
超级大乐透是指由购买者从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

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:使用CHttpFile从服务器端正确的读取数据

下一篇:C#检测本机是否联网