//第七届蓝桥杯软件类省赛真题-C-B-3_凑算式 /*题目: 凑算式A + B/C + DEF/GHI = 10(如果显示有问题,可以参见【图1.jpg】)这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。比如: 6+8/3+952/714 就是一种解法, 5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。*//*【解题思路】解法一:暴力枚举解法二:深度优先搜索 答案:29*/#include<iostream>using namespace std;int main(){ double a,b,c,d,e,f,g,h,i; int count = 0; for(a = 1.0;a <= 9.0;a++) for(b = 1.0;b <= 9.0;b++) for(c = 1.0;c <= 9.0;c++) for(d = 1.0;d <= 9.0;d++) for(e = 1.0;e <= 9.0;e++) for(f = 1.0;f <= 9.0;f++) for(g = 1.0;g <= 9.0;g++) for(h = 1.0;h <= 9.0;h++) for(i = 1.0;i <= 9.0;i++){ if(a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && b != c && b != d && b != e && b != f && b != g && b != h && b != i && c != d && c != e && c != f && c != g && c != h && c != i && d != e && d != f && d != g && d != h && d != i && e != f && e != g && e != h && e != i && f != g && f != h && f != i && g != h && g != i && h != i){ if(a+b/c+(d*100+e*10+f)/(g*100+h*10+i) == 10.0){// cout<<"a="<<a<<" b="<<b<<" c="<<c<<" d="<<d<<" e="<<e<<" f="<<f// <<" g="<<g<<" h="<<h<<" i="<<i<<endl; count++; } } } cout<<"这个算式共有的解法种数为:"<<count<<endl; return 0;}/*#include<iostream>using namespace std;double a[9];bool visit[9];int count = 0;void dfs(int step){ if(step == 9) { if(a[0]+a[1]/a[2]+(a[3]*100+a[4]*10+a[5])/(a[6]*100+a[7]*10+a[8]) == 10.0){ count++; } return; } for(int i = 0;i < 9;i ++) { if(visit[i] == false) { a[step] = i+1.0; visit[i] = true; dfs(step+1); visit[i] = false; } } return;}int main(){ dfs(0); cout<<"这个算式共有的解法种数为:"<<count<<endl; return 0;}*/
新闻热点
疑难解答