2016年第七屆藍橋杯C/C++程式設計本科B組省賽 湊算式(結果填空) DFS
阿新 • • 發佈:2019-01-30
//A + B/C + DEF/GHI = 10 湊算式 標記一下1-9個數,再搜尋一下就好了
#include <iostream> using namespace std; bool visited[10]; int ans[100]; int k = 0; int coun = 0; bool judge(){ double x = (double)ans[1]/ans[2]; double y = (double)(ans[3]*100+ans[4]*10+ans[5])/(ans[6]*100+ans[7]*10+ans[8]); if(ans[0]+x+y == 10) return 1; else return 0; } void dfs(int depth){ if(depth >= 9) { if(judge()) coun++; return; } for(int i = 1; i < 10; i++) if(!visited[i]) { visited[i] = true; ans[k++] = i; dfs(depth+1); visited[i] = false; k--; } } int main(){ dfs(0); cout << coun << endl; return 0; }