来自陈珺的问题
怎样用三个数配合四则运算算得24?
怎样用三个数配合四则运算算得24?
1回答
2020-02-07 01:31
怎样用三个数配合四则运算算得24?
怎样用三个数配合四则运算算得24?
高级二十四点则要求人们可以使用一些除了加减乘除之外的运算符号将四个只用加减乘除无法算出二十四的数字进行混合运算求得二十四.(注意:其他运算符号不得直接出现所给的四个数字之外的数字,例如可以直接出现平方根,但不能直接出现立方根,可以直接出现阶乘,但不能直接出现平方)
例如:
(0!+0!+0!+0!)!
(1+1+1+1)!
(2+2)!+2-2
(7÷7%)的平方根+7+7
8的平方根×8的平方根+8+8
9的平方根×9的平方根×9的平方根-9的平方根
(log10+log10+log10+log10)!
[编辑本段]24点游戏算法
利用计算程序来完成这个计算二十四点的程序
方法如下:
首先穷举的可行性问题.我把表达式如下分成三类——
1、无括号的简单表达式.
2、有一个括号的简单表达式.
3、有两个括号的较复4、杂表达式.
穷举的开始我对给出的四个数进行排列,其可能的种数为4*3*2*1=24.我利用一个嵌套函数实现四个数的排列,算法如下:
/*ans[]用来存放各种排列组合的数组*/
/*c[]存放四张牌的数组*/
/*k[]c[]种四张牌的代号,其中k[I]=I+1.
用它来代替c[]做处理,考虑到c[]中有可能出现相同数的情况*/
/*kans[]暂存生成的排列组合*/
/*j嵌套循环的次数*/
intfans(c,k,ans,kans,j)
intj,k[],c[];charans[],kans[];
{inti,p,q,r,h,flag,s[4],t[4][4];
for(p=0,q=0;p