誰家孩子跑最快.....
阿新 • • 發佈:2019-02-05
/*問題描述:張王李三家各有三個小孩。一天,三家的九個孩子在一起比賽短跑,規定不分年齡大小,
跑第一得9分,跑第2得8分,依此類推。比賽結果各家的總分相同,且這些孩子沒有同時到達終點的,
也沒有一家的兩個或三個孩子獲得相連的名次。已知獲第一名的是李家的孩子,獲得第二的是王家的孩子。
問獲得最後一名的是誰家的孩子?
*/
- #include<iostream>
- usingnamespace std;
- int Label[9],Score[3];//標記各名次是誰家孩子(1-Li,2-Wang,3-Zhang) ,三家孩子得得分
- int main(){
- //每家孩子只能得15分
- void Run(int P);
- Score[0]=9;
- Label[0]=1;/*李家孩子第一名*/
- Score[1]=8;
- Label[1]=2;/*王家孩子第一名*/
- Run(3);
- return 0;
- }
- void Run(int P){/*P代表當前為第幾名*/
- if(P==10){
- if(Score[0]==15 && Score[1]==15 && Score[2]==15)
- for(int i=0;i<9;i++){
- switch(Label[i]){
- case 1:cout<<"第"<<i+1<<"名為:"<<"李家的孩子"<<endl;break;
- case 2:cout<<
- case 3:cout<<"第"<<i+1<<"名為:"<<"張家的孩子"<<endl;break;
- default:break;
- }
- }
- return;
- }
- else{
- for(int i=1;i<=3;i++){
- if(Label[P-2]!=i){//前後必須不同家
- Score[i-1]+=10-P;
- Label[P-1]=i;
- Run(P+1);
- Score[i-1]-=10-P;
- }
- }
- }
- }