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

时间: 2024-11-19 05:52:26

EX14 彩票中奖 (lottery.pas/c/cpp)的相关文章

【java】彩票中奖码生成器:java.util.Random里的方法public int nextInt(int bound)

1 package 彩票中奖码生成器; 2 3 import java.util.Random; 4 5 public class TestRandom { 6 public static void main(String[] args) { 7 Random random=new Random(); 8 int[] numbers=new int[6]; 9 int index=0; 10 while(index<numbers.length){ 11 int num=random.nextI

用循环与数组模拟双色球彩票中奖

String ji="机选"; String zi="自选"; System.out.println("请问机选还是自选?"); String my=wx.next(); int []a=new int[7];//用户买的号码记录的数组 //自选时的用户彩票 if(my.equals(zi)){ for(int i=0;i<a.length;i++){ //蓝球的输入 if(i==6){ System.out.println("请

NOIP第二次模拟赛 stage1【划分数列(seq.pas/c/cpp)

7划分数列(seq.pas/c/cpp) [题目描述] 给你一个有n个元素的数列,要求把它划分成k段,使每段元素和的最大值最小 [输入格式] 第一行两个正整数n,k 第二行为此数列ai [输出格式] 一行一个数,为题目所求答案 [样例输入] 5 2 2 1 3 4 5 [样例输出] 9 [数据规模] 30%数据 n <= 30, k <= 10 100%数据 n <= 100000, k <= n, ai <= 10^9 150%数据 n <= 100000, k &l

U68641 划水(swim.pas/c/cpp)

U68641 划水(swim.pas/c/cpp) 题目背景 小小迪带你划水. 题目描述 原题 输入输出格式 输入格式: 第一行一个数 T. 接下来 T 行每行一个数表示 n 输出格式: 输出 T 行每行一个整数表示这个数的子数 输入输出样例 输入样例#1: 2 1234567890123456789 1021 输出样例#1: 332876913 1158 sol:一个个拆出来过于睿智,所以我们一位位讨论贡献,十分简单 // luogu-judger-enable-o2 #include <cs

纪中5日T3 1566. 幸运锁(lucky.pas/c/cpp)

1566. 幸运锁(lucky.pas/c/cpp) 题目描述 有一把幸运锁,打开它将会给你带来好运,但开锁时需要输入一个正整数(没有前导0).幸运锁有一种运算,对于一个正整数,返回他的相邻两位数字间的差,如1135,运算结果为22(会去掉前导0). 现在已知只有经过反复运算最终结果为7的数才能打开这把锁,给你一个区间[a,b],问该区间中有多少个能打开幸运锁的幸运数. 输入 第一行两个整数a,b. 输出 一个整数K,表示共有多少个这样的数. 样例输入 1 10 样例输出 1 数据范围限制 [限

java 彩票中奖程序

1 import java.io.*; 2 import java.util.Scanner; 3 import java.util.Random; 4 public class Lottery { 5 public int[] Ran(int x,int z,int y,int Is_repeat){//产生z到y的x个随机数, 6 //Is_repeat为0时随机数可以重复,1时不能重复 7 System.out.print("中奖号:"); 8 int[] R=new int[x

php 彩票类 lottery

<?php /* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ /** * Lottery class * * @author Rafal Strojek <[email protected]> * @copyright 2014 (c) Rafal Strojek * @vers

爬取彩票中奖信息

(1) http://www.zhcw.com/ssq/kaijiangshuju/index.shtml?type=0,打开此网址,并通过浏览器中“检查”选项发现此网页数据来源规律: (2)发现他的这些信息都存在标签<tr>中 (3)代码展示: 爬取 1-5 页的中所有中奖的<开奖时间>.<期号>.<中奖号 码>.<销售额>. <一等奖>. <二等奖>信息存储至 CSV 文件. #将信息爬取出来并存在列表中 form =

中彩票的是穷人最后还是穷人

在中国有无数的人在买彩票,最后想通过买彩票中奖来改变自己的生活!尽管这样的概率微乎其微,但是大家依旧在这条彩票的道路上前行,希望自己也有一天成为那位中彩票的富翁.那中彩票之后呢?真正能够改善自己生活的又有几人呢?我们姑且不说新闻中经常会报道某某人中奖,在多长时间挥霍一空.但是确实是这样,因为他们只是有了钱,而不是有了钱,试问马云,马化腾,王健林等人的财富是靠买彩票的来的吗? 我们不得不承认一点,那就是我们想有钱,我们想成为有钱人.但是有那么一些人哪怕是有了钱,心里最终也摆脱不了穷人的影子,因为他