算法——枚举算法求解填数游戏

填数游戏

clip_image003clip_image004
Matlab代码实现%填数游戏
clear,close all

format short;
num=zeros(5);

for i1=1:9
    num(1)=i1;
    for i2=0:9
        num(2)=i2;
        for i3=0:9
            num(3)=i3;
            for i4=0:9
                num(4)=i4;
                for i5=0:9
                    num(5)=i5;
                    
                    result=(num(1)*(10^4)+num(2)*(10^3)+num(3)*(10^2)+num(4)*(10^1)+num(5))*num(1);
                    target=num(5)*(10^5)+num(5)*(10^4)+num(5)*(10^3)+num(5)*(10^2)+num(5)*(10^1)+num(5);
                    
                    if result==target
                        fprintf('结果为: %d%d%d%d%d\n',num(1),num(2),num(3),num(4),num(5));
                        return;
                    end
                end
            end
        end
    end
end

 

运行结果为:79365

 

枚举算法也称穷举算法,本例中通过对各位数的取值进行枚举,判断运算结果和目标结果是否相等,相等则求解完成。枚举算法往往需要嵌套多重循环,因此,如果运算规模较大或运算规则复杂,则将导致算法复杂度指数级增长,开销巨大。可考虑在枚举的基础上,增加启发式信息。

转载于:https://www.cnblogs.com/6DAN_HUST/archive/2011/07/29/2120751.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值