乙個樸素的24點演算法

2021-06-11 07:32:36 字數 1115 閱讀 8324

#include #include #include #include #define oper_add  0x00000001

#define oper_sub 0x00000002

#define oper_mul 0x00000004

#define oper_div 0x00000008

#define opt_num 3

using namespace std;

int org[4];

vectora;

stack> mystack;

int listnum(void)}}

}}}}

return 0;

}

int tfpoint(int num,int sum, unsigned int *optflag,int optnum)

return 0;

}int ret=0;

unsigned int opt1,opt2,opt3,opt4;

opt1 = *optflag;

opt2 = *optflag;

opt3 = *optflag;

opt4= *optflag;

//add

ret=sum-a[num-1];

opt1 |= oper_add << ((opt_num-optnum)*4);

tfpoint(num-1,ret,&opt1,optnum-1);

//sub

ret=sum+a[num-1];

opt2 |= oper_sub << ((opt_num-optnum)*4);

tfpoint(num-1,ret,&opt2,optnum-1);

//mul

if(a[num-1]!=0)

}//div

ret=sum*a[num-1];

opt4 |= oper_div << ((opt_num-optnum)*4);

tfpoint(num-1,ret,&opt4,optnum-1);

return 1;

}int main()

return 0;

}

24點演算法

include typedef float cdecl type myfun float float float funadd float x,float y float funsub float x,float y float funmul float x,float y float fundiv...

24點演算法

給定四個數,計算這四個數 1 13 的 能不能得到24 佔時只實現滿足一種情況就列印 方法 窮舉法 思路 有兩種方式,1 連貫式計算 2 分隔式計算 1 連貫式計算 例如對於2 4 3 5的計算,2 4 6 6 3 18 18 5 23 2 4 3 5 2 分隔式計算 例如對於2 4 3 5的計算,...

24點演算法

24點遊戲的演算法,其中最主要的思想就是窮舉法。所謂窮舉法就是列出4個數字加減乘除的各種可能性,包括括號的演算法。我們可以將表示式分成以下幾種 首先我們將4個數設為a,b,c,d,其中算術符號有 其中有效的表示式有a,ab cd,等等。列出所有有效的表示式。其中我們用列舉型別將符號定義成數字常量,比...