作业帮 > 综合 > 作业

C语言求编程,1000以内自然数表示为五个3的正整数幂的四则混合运算式.允许括号嵌套.

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/26 15:42:40
C语言求编程,1000以内自然数表示为五个3的正整数幂的四则混合运算式.允许括号嵌套.
如题不重复
用BFS吧,
(1):应该最大幂为6,则五个数分别可能是3^1,3^2,...3^6,这6种情况,
即a[1] = {3^1,3^2,...3^6}={3,9,27,81,243,729}之一;
a[2] = {3^1,3^2,...3^6}之一,
...
这里有6^5 ~= 8000可能
(2):枚举4个运算符号,每个运算有4种可能,即+、-、*、/、
这样,有4^4 = 256 ~= 250可能
(3):带括号的情况,共有14种可能,为什么,可以查看“卡特兰数”..
综上,则穷举8000*250*14 ~= 3千万次则可.
至于括号的处理,举例说明:( (a ? b ) ? (c ? d) ) ? e
《1》、每次运算,都是“相邻两数”运算,他们得到新的一个值,注意:现在所有值少了1个
《2》、重复上述操作,直到剩下一个数