穷举法之完美综合式

本文介绍了一个利用穷举法解决数字1到9填充运算式使其成立的问题。通过对各种条件的判断和限制,如禁止数字1出现在乘法和乘方中,以及不允许数字重复,最终通过回溯法生成可能的全排列并验证每种情况的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  3. 程序代码

/*本实本分的穷举*/
#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[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值