【第七届蓝桥杯】寒假作业

来源:互联网 发布:sql两表连接查询 编辑:程序博客网 时间:2024/04/30 10:40
题目:寒假作业

现在小学的数学题目也不是那么好玩的。
看看这个寒假作业:

   □ + □ = □
   □ - □ = □
   □ × □ = □
   □ ÷ □ = □
   

   (如果显示不出来,可以参见【图1.jpg】)


   图1.jpg
每个方块代表1~13中的某一个数字,但不能重复。
比如:
 6  + 7 = 13
 9  - 8 = 1
 3  * 4 = 12
 10 / 2 = 5

以及: 
 7  + 6 = 13
 9  - 8 = 1
 3  * 4 = 12
 10 / 2 = 5

就算两种解法。(加法,乘法交换律后算不同的方案)
 

你一共找到了多少种方案?


请填写表示方案数目的整数。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。


答案:64


#include<stdio.h> int a[14], b, c, sum = 0; bool isVisit[14]; bool test(int next) { if(3 == next) if (a[1] + a[2] != a[3])return false; if(6 == next) if(a[4] - a[5] != a[6]) return false;  if (9 == next) if (a[7] * a[8] != a[9]) return false; if (12 == next) if (a[10] / a[11] != a[12] || a[10] % a[11] != 0) return false;return true; } void dfs(int num) { if (13 == num) if ((a[3] == a[1] + a[2]) && (a[6] == a[4] - a[5]) && (a[9] == a[7] * a[8]) && (a[12] == a[10] / a[11])) sum++;for (int i = 1; i <= 13; i++)if (isVisit[i] == 0) { isVisit[i] = 1; a[num] = i; if (!test(num)) { isVisit[i] = 0; continue; } dfs(num + 1); isVisit[i] = 0; } } int main() { dfs(1); printf("%d\n", sum); return 0; }

第七届蓝桥杯所有组试题与部分答案

原创粉丝点击