欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

C++实现24点游戏的详细步骤

最编程 2024-02-01 12:15:29
...
  • 全排列枚举由库函数 next_permutation来完成枚举
  • 64种运算符号搭配由一个整数状压(0—63)来完成枚举
  • 加括号方式由后缀表达式来完成,运算对象用0表示,运算符用1表示,由右向左开始,以(A-(B+C))*D为例,转成后缀表达式为ABC+-D*,改成由右向左阅读的顺序,*D-+CBA,再转成用01标记的二进制数1011000,为了在代码中便于对运算符和运算对象同时操作,去掉最后一个0,变为101100,去掉的那个在初始时提前压栈,这样就正好3个0、3个1了,同理,((AB)C)D->101010(AB)(CD)->110010A((BC)D)->110100A(B(CD))->111000
  • 由于运算过程中含有除法,用double又不是我风格,所以写个小结构体表示有理数。包含分子和分母。
  • 验证是否有解和打印解分开,更灵活。