- 问题描述
数字1,2,…,9这9个数字填入以下含加减乘除与乘方的综合运算式中的9个□中,使得该式成立
□^□+□□÷□□-□□×□=0
要求数字1,2,…,9这9个数字在各式中都出现一次且只出现一次,且约定数字“1”不出现在乘、乘方的一位数中(即排除各式中的各个1位数为1这一平凡情形,前两个方框和最后一个不可以为1)。 算法分析
(1)、可以使用最简单的枚举,设置9重循环,并且还要判断9个数不可以重复,枚举完每一种情况后再判断该情况是不是正确的
(2)、在使用穷举时,可以根据一些条件的判断来缩短枚举的次数
(3)、实际上上面的问题也就是1-9的全排列,可以用回溯法生成1-9的全排列,然后判断每一种情况是否合理程序代码
/*本实本分的穷举*/
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int arr[9] = {
0};
for (arr[0]=1; arr[0]<=9; ++arr[0])
for (arr[1]=1; arr[1]<=9; ++arr[1])
for (arr[2]=1; arr[2]<=9; ++arr[