回 帖 发 新 帖 刷新版面

主题:[讨论]请教一题宽搜的题目

最少运算次数(work2.pas)
[问题描述]
设有数2,3,5,7,13,运算符号为+,-,* ,且运算符无优先级之分,每个数只许用1次,如2+3*5=25,3*5+2=17。现给出任意一个整数n,要求用以上的数和运算符,以最少的运算次数产生出。

输入输出:
输入文件(work2.in)只有1个整数n;
输出文件(work2.out)是满足条件的一个表达式,如25=2+3*5。如果不唯一只要输出满足条件的一个即可。如果无解则输出“no answer.”

回复列表 (共2个回复)

沙发

由于这几个数字是互质的,又不会存在除法,加上没有顺序,所以这道题目是个宽度优先的题目。
对于每个栈内的元素x出栈的同时将x+2、x-2、x*2、x+3、……、x*13这么15个数字。
不过好像要优化一下,把超出太多的给舍掉。

板凳

不需要优化,极端情况下为5!*3^4

我来回复

您尚未登录,请登录后再回复。点此登录或注册