程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> EX14 彩票中獎 (lottery.pas/c/cpp),ex14lottery.pas

EX14 彩票中獎 (lottery.pas/c/cpp),ex14lottery.pas

編輯:C++入門知識

EX14 彩票中獎 (lottery.pas/c/cpp),ex14lottery.pas


【題目描述】
小明想試試運氣去購買彩票,所以他開始研究彩票大樂透的玩法:
超級大樂透是指由購買者從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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved