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

两天后,中奖号码公布,小明开始研究到底中了多少奖金。获奖方式如上右图:例如,中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%的数据,小明的号码可能是手写的,前区或后区的数字不一定有序。

题解

 #include<stdio.h>
int x[],y[],t[][];
int main(){
int a,b,i,j,u=,v=;
t[][]=;
t[][]=;
t[][]=t[][]=;
t[][]=t[][]=;
t[][]=t[][]=t[][]=;
t[][]=t[][]=t[][]=t[][]=;
for(i=;i<=;i++)scanf("%d",&x[i]);
for(i=;i<=;i++)scanf("%d",&y[i]);
for(i=;i<=;i++)
for(j=;j<=;j++)
if(x[i]==y[j])u++;
for(i=;i<=;i++)
for(j=;j<=;j++)
if(x[i]==y[j])v++;
printf("%d\n",t[u][v]);
return ;
}

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

05-03 21:03