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