24点游戏的一种解法
来源:互联网 发布:nginx php cgi 编辑:程序博客网 时间:2024/05/16 15:20
题目:给你4个正整数,这4个正整数的范围是1到13.问这四个数可否通过加减乘除的不同组合(可以使用括号)得到最终结果24.假如有这样的组合,那么给出这种组合的具体表达式。
分析:最简单直接的办法就是穷举每一个组合,及计算每一种组合的结果,看其是否有结果24.
解决方法:可以从原来数组中任意取出两个数,然后依次计算这两个数的加、减、乘、除,将计算结果放入原来的数组,并把取出来的两个数从原来数组中删除。依次规则进行,直到数组中只剩下一个数,这就是这个组合的运算结果。以上步骤中“任意取两个数”其实对应于任意数的组合,并加括号。
下面是本题的一个C语言实现:
#include<stdio.h>
#include<math.h>
#include<string.h>
int is_this_right(double* array,char result[][50],int n)
{