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