123456789这九个按顺序排列的数,要求在它们之间插入若干个+,-,*,/ ,使其结果正好等于100如: 1*2*3*4+5+6+7*8+9=100
解析过程(进攻参考):
1-------2------3------4------5------6------7------8------9
9个数字共有8个间隙,可以置入的符号有+,-,*,/,#5个符号,分别代表加减乘除连接物种操作。
下面我们采用五进制数来进行遍历,分别求解是否等于100。
那么有多少种情况呢?
8个位置,每个位置是相对独立的,任何一个位置的选择不影响其他位置的选择。
所以共需要5^8个选择。
下面开始进行程序的设计:
我们为了便于计算,采用高精度的方法进行模拟5^8:
Char num[8]={0};
采用函数进行对num每次++,重载运算符++。
下面代码仅供参考,添加必要的逆波兰算法后即可进行判断。