//第七屆藍(lán)橋杯軟件類省賽真題-C-C-3_寒假作業(yè)/*寒假作業(yè)現(xiàn)在小學(xué)的數(shù)學(xué)題目也不是那么好玩的。看看這個寒假作業(yè):【】+【】=【】【】-【】=【】【】*【】=【】【】/【】=【】 每個方塊代表1~13中的某一個數(shù)字,但不能重復(fù)。比如: 6 + 7 = 13 9 - 8 = 1 3 * 4 = 12 10 / 2 = 5 以及: 7 + 6 = 13 9 - 8 = 1 3 * 4 = 12 10 / 2 = 5 就算兩種解法。(加法,乘法交換律后算不同的方案) 你一共找到了多少種方案? 請?zhí)顚懕硎痉桨笖?shù)目的整數(shù)。注意:你提交的應(yīng)該是一個整數(shù),不要填寫任何多余的內(nèi)容或說明性文字。*//*【解題思路】解法:深度優(yōu)先搜索或暴力枚舉,其中要遍歷搜索13個數(shù),有可能導(dǎo)致系統(tǒng)棧內(nèi)存溢出,故需逐步判斷優(yōu)化 答案:64*/#include<iostream>using namespace std;int a[12];bool visit[13];int count = 0;void dfs(int step){ if(step == 3)//逐步判斷1 { if((a[0]+a[1]) != a[2]) return; } if(step == 6)//逐步判斷2 { if( (a[3]-a[4]) != a[5] ) return; } if(step == 9)//逐步判斷3 { if( (a[6]*a[7]) != a[8] ) return; } if(step == 12)//逐步判斷4 { if((a[0]+a[1]) == a[2] && (a[3]-a[4]) == a[5] && (a[6]*a[7]) == a[8] && (a[11]*a[10]) == a[9]){ count++; } return; } for(int i = 0;i < 13;i ++) { if(visit[i] == false) { a[step] = i+1; visit[i] = true; dfs(step+1); visit[i] = false; } } return;}int main(){ dfs(0); cout<<"方案總數(shù)為:"<<count<<endl; return 0;}/*#include<iostream>using namespace std;int main(){ int a[12]; int count = 0; for(a[0] = 1;a[0] <= 13;a[0]++) for(a[1] = 1;a[1] <= 13;a[1]++) for(a[2] = 1;a[2] <= 13;a[2]++){ if((a[0]+a[1]) != a[2])//逐步判斷1 continue; for(a[3] = 1;a[3] <= 13;a[3]++) for(a[4] = 1;a[4] <= 13;a[4]++) for(a[5] = 1;a[5] <= 13;a[5]++){ if((a[3]-a[4]) != a[5])//逐步判斷2 continue; for(a[6] = 1;a[6] <= 13;a[6]++) for(a[7] = 1;a[7] <= 13;a[7]++) for(a[8] = 1;a[8] <= 13;a[8]++){ if((a[6]*a[7]) != a[8])//逐步判斷3 continue; for(a[9] = 1;a[9] <= 13;a[9]++) for(a[10] = 1;a[10] <= 13;a[10]++) for(a[11] = 1;a[11] <= 13;a[11]++){ if((a[11]*a[10]) != a[9])//逐步判斷4 continue; if(a[0] != a[1] && a[0] != a[2] && a[0] != a[3] && a[0] != a[4] && a[0] != a[5] && a[0] != a[6] && a[0] != a[7] && a[0] != a[8] && a[0] != a[9] && a[0] != a[10] && a[0] != a[11] && a[1] != a[2] && a[1] != a[3] && a[1] != a[4] && a[1] != a[5] && a[1] != a[6] && a[1] != a[7] && a[1] != a[8] && a[1] != a[9] && a[1] != a[10] && a[1] != a[11] && a[2] != a[3] && a[2] != a[4] && a[2] != a[5] && a[2] != a[6] && a[2] != a[7] && a[2] != a[8] && a[2] != a[9] && a[2] != a[10] && a[2] != a[11] && a[3] != a[4] && a[3] != a[5] && a[3] != a[6] && a[3] != a[7] && a[3] != a[8] && a[3] != a[9] && a[3] != a[10] && a[3] != a[11] && a[4] != a[5] && a[4] != a[6] && a[4] != a[7] && a[4] != a[8] && a[4] != a[9] && a[4] != a[10] && a[4] != a[11] && a[5] != a[6] && a[5] != a[7] && a[5] != a[8] && a[5] != a[9] && a[5] != a[10] && a[5] != a[11] && a[6] != a[7] && a[6] != a[8] && a[6] != a[9] && a[6] != a[10] && a[6] != a[11] && a[7] != a[8] && a[7] != a[9] && a[7] != a[10] && a[7] != a[11] && a[8] != a[9] && a[8] != a[10] && a[8] != a[11] && a[9] != a[10] && a[9] != a[11] && a[10] != a[11]){ if((a[0]+a[1]) == a[2] && (a[3]-a[4]) == a[5] && (a[6]*a[7]) == a[8] && (a[11]*a[10]) == a[9]){ count++; } } } } } } cout<<"方案總數(shù)為:"<<count<<endl; return 0;}*/
新聞熱點
疑難解答