24点 游戏 1879 结构力学求解器,谢谢

36810怎么算24点各位学霸帮帮忙,谢谢了。
36810怎么算24点各位学霸帮帮忙,谢谢了。
1. [﹙6+10﹚-8]×3 2. [﹙10+6﹚-8]×3 3. 3×[﹙6-8﹚+10]
(6+10-8)x3=24
版式: | 炫彩版 | 12-03 01:30用C语言设计算法完成24点游戏的计算._百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
用C语言设计算法完成24点游戏的计算.
除和括号进行运算得出24。每张牌都必须使用一次:从一副扑克牌中抽去大小王剩下52张,游戏内容是、乘,把牌面上的数(A代表1)运用加、减,任意抽取4张牌24点游戏是一种使用扑克牌来进行的益智类游戏,但不能重复使用
#include&stdio.h&int&chu(int&p,int&q){ if(p%q==0)return&p/q; else
return&111111; }int&fun(int&i,int&j,int&c){ int&s; switch(c) { case&1:s=i+j; case&2:s=i-j; case&3:s=i*j; case&4:s=chu(i,j); } return&s;}void&print(int&c){ if(c==1)printf(&+&); else&if(c==2)printf(&-&); else&if(c==3)printf(&*&); else&printf(&/&);}int&main(){ int&f[4];&//四个1-14的数 int&i,j,m,n; int&a,b,c;&//符号 int&d1,d2,d3;&//每步的结果 scanf(&%d%d%d%d&,&f[0],&f[1],&f[2],&f[3]); for(i=0;i&4;i++)&&
for(j=0;j&4;j++)
for(m=0;m&4;m++)
if(m!=i&&m!=j)
for(n=0;n&4;n++)
if(n!=i&&n!=j&&n!=m) for(a=1;a&5;a++)
for(b=1;b&5;b++)
for(c=1;c&5;c++)
d1=fun(f[i],f[j],a);
d2=fun(d1,f[m],b);
d3=fun(d2,f[n],c);
if(d3==24)
printf(&%d&,f[i]);
printf(&%d&,f[j]);
printf(&%d&,f[m]);
printf(&%d=24\n&,f[n]);
好了,框架出来了,细节我自己改改。谢谢,我还有两个题你也可以去看看。
采纳率:61%
来自团队:
穷举 肯定是对的
这个是C++得,你自己把它改成C语言,希望可以帮到你。/*C++实现的扑克二十四点游戏*/#include&iostream&#include&string&#include&time.h&#define NUM 1000int j=2;//定义为全局变量int rand()Num[NUM];//因为rand()()函数有一定的缺陷,所以在程序中定义了rand()Num数组来存放随机数
//即使使用了种子函数srand(),由于程序运行时间比较短,也不太好设置种子。因此使用数组来存放随机数class Poker{private: int poker[53];
//扑克 int pokerValue[53]; //扑克代表的数值 string pokerName[53]; //扑克名
//玩家钱数
//玩家的赌注 int pokerF[5];
//玩家手中的牌 F:Farmer
L:Landlord int pokerL[5];
//庄家手中的牌 F:Farmer
L:Landlord int pokerNumF;
//玩家手中的牌数 int pokerNumL;
//庄家手中的牌数public: Poker();
//构造函数,对牌初始化 void initPoker();
//洗牌,在每轮游戏开始前进行 string getPokerF();
//用字符串的形式返回玩家的牌 string getPokerL();
//用字符串的形式返回庄家的牌 int getSumF();
//返回玩家牌的点数,用以判断是否超过21点 int getSumL();
//返回庄家牌的点数 void farmerAsk();
//玩家要牌 void landlordAsk();
//庄家要牌 void inputBet();
//玩家输入赌注 void newGame();
//开始新游戏 void landlordProcess();
//在玩家不要牌时进行处理};Poker::Poker(){ int i=0; poker[0]=0; for(i=1;i&=13;i++)
poker[i]=i;
//|用构造函数对牌初始化
poker[i+13]=i;
poker[i+26]=i;
poker[i+39]=i;
//| }//for结束 pokerValue[0]=0; for(i=1;i&=52;i++) {
if(poker[i]&=10)
pokerValue[i]=poker[i];
pokerValue[i]=10; }//for结束pokerName[0]=&&; for(i=0;i&4;i++) {
pokerName[1+13*i]=&A&;
pokerName[2+13*i]=&2&;
pokerName[3+13*i]=&3&;
pokerName[4+13*i]=&4&;
pokerName[5+13*i]=&5&;
pokerName[6+13*i]=&6&;
pokerName[7+13*i]=&7&;
pokerName[8+13*i]=&8&;
pokerName[9+13*i]=&9&;
pokerName[10+13*i]=&10&;
pokerName[11+13*i]=&J&;
pokerName[12+13*i]=&Q&;
pokerName[13+13*i]=&K&; }//for结束
money=200;
//玩家开始玩游戏时钱数是200 bet=0;
for(i=0;i&5;i++) {
pokerF[i]=0;
//|对pokerOfFarmer初始化
pokerL[i]=0;
//|对pokerOfLandlord初始化 }pokerNumF=0;//玩家手中的牌数初始化为0 pokerNumL=0;//庄家手中的牌数初始化为0
srand((int)time(0)); for(i=0;i#i++) {
randNum[i]=rand()*51/32767+1;//产生随机数数组 }}//构造函数Poker()结束void Poker::initPoker(){
cout&&&新一局游戏开始,开始洗牌&&&&&&&& pokerF[0]=randNum[j++];
//产生1-52的随机数 pokerF[1]=randNum[j++];
//产生1-52的随机数 pokerL[0]=randNum[j++];
//产生1-52的随机数 pokerL[1]=randNum[j++];
//产生1-52的随机数
pokerNumF=2; pokerNumL=2;
cout&&&洗牌完成,你的牌为:&&&getPokerF()&&}//void Poker::initPoker()结束string Poker::getPokerF()//用字符串的形式返回玩家的牌{ string result=&&;
for(i=0;i&pokerNumF;i++)
result=result+pokerName[pokerF[i]]+& &; }//string Poker::getPokerF()结束string Poker::getPokerL()//用字符串的形式返回庄家的牌{ string result=&&;
for(i=0;i&pokerNumL;i++)
result=result+pokerName[pokerL[i]]+& &;
}//string Poker::getPokerL()结束int Poker::getSumF()
//返回玩家的总点数{ int result=0;
for(int i=0;i&pokerNumF;i++)
result=result+pokerValue[pokerF[i]];}int Poker::getSumL()//返回庄家的总点数{ int result=0;
for(int i=0;i&pokerNumL;i++)
result=result+pokerValue[pokerL[i]]; }void Poker::farmerAsk(){
if(pokerNumF&=5) {
cout&&&你的牌数已够5张,不能再要牌了&&&
landlordProcess(); } else {
pokerF[pokerNumF++]=randNum[j++];
//产生1-52的随机数
cout&&&你的牌为:&&&getPokerF()&&
if(getSumF()&24)
cout&&&你撑死了,你输了&&&bet&&&元&&&
money=money-
if(money&=0)
cout&&&你已经输光了,哈哈&&&
cout&&&游戏结束&&&
inputBet();
initPoker();
else if(getSumF()==24)
landlordProcess();
} }}void Poker::landlordAsk(){
if(pokerNumL&=5) {
if(getSumF()&getSumL())
cout&&&庄家的牌为&&&getPokerL()&&
cout&&&你赢了,你赢了&&&bet&&&元&&&
money=money+
inputBet();
initPoker();
else if(getSumF()==getSumL())
cout&&&庄家的牌为&&&getPokerL()&&
cout&&&平手&&&
inputBet();
initPoker();
else if(getSumF()&getSumL())
cout&&&庄家的牌为&&&getPokerL()&&
cout&&&你输了,你输了&&&bet&&&元&&&
money=money-
if(money&=0)
cout&&&你已经输光了,哈哈&&&
cout&&&游戏结束&&&
inputBet();
initPoker();
} } else {
pokerL[pokerNumL++]=randNum[j++];
//产生1-52的随机数
if(getSumL()&24)
cout&&&庄家的牌为&&&getPokerL()&&
cout&&&庄家撑死了,你赢了&&&bet&&&元&&&
money=money+
inputBet();
initPoker();
landlordProcess(); }}void Poker::inputBet(){ cout&&&你现在有&&&money&&&元,请输入赌注:&; do {
if(bet&money)
cout&&&笨蛋,你没那么多钱,少来,重新输入吧:&; }while(bet&money);}void Poker::newGame(){ inputBet(); initPoker(); cout&&&你得到的牌为:&&&getPokerF()&&} void Poker::landlordProcess(){
if(getSumL()&=17)
if(getSumL()&getSumF())
cout&&&庄家的牌为&&&getPokerL()&&
cout&&&庄家获胜,你输了&&&bet&&&元&&&
money=money-
if(money&=0)
cout&&&你已经输光了,哈哈&&&
cout&&&游戏结束&&&
inputBet();
initPoker();
else if(getSumF()==getSumL())
cout&&&庄家的牌为&&&getPokerL()&&
cout&&&本次游戏平手&&&
inputBet();
initPoker();
cout&&&庄家的牌为&&&getPokerL()&&
cout&&&你赢了,你赢了&&&bet&&&元&&&
money=money+
inputBet();
initPoker();
landlordAsk(); }}int
int choose=1; P cout&&&****************** 欢迎玩二十四点游戏 ******************&&&endl&& poker.inputBet();
poker.initPoker();
while(choose==1||choose==2||choose==3||choose==4) {
cout&&&1.要牌 2.不要牌 3.重新开始 4.退出
&&请输入数字选择操作:&;
if(choose==1)
poker.farmerAsk();
else if(choose==2)
poker.landlordProcess();
else if(choose==3)
poker.newGame();
else if(choose==4)
exit(0); } return 0;}//main函数结束
其实就是因为我有些地方不会改才悬赏的。。。
等等,我下个开发环境给你调调。
咦,刚刚回答的不是你啊。。你等等,我找个题目然后你随便回答一下,给你分,不好意思啊。。麻烦你了,上面那位做出来了。
用得最为广泛的六种解法  在这里,我们用a、b、c、d表示牌面上的四个数,可以尝试一下如下六种算式:  ①﹙a-b﹚×﹙c+d﹚, 如﹙10-4﹚×﹙2+2﹚=24等。(用2、2、4、10算24点)  ②﹙a+b﹚÷c×d,如﹙10+2﹚÷2×4=24等。(用2、2、4、10算24点)  ③﹙a-b÷c﹚×d, 如﹙3-2÷2﹚×12=24等。(用2、2、3、12算24点)  ④﹙a+b-c﹚×d,如﹙9+5-2﹚×2=24等。(用2、2、5、9算24点)  ⑤a×b+c-d, 如11×3+1-10=24等。(用1、3、10、11算24点)  ⑥﹙a-b﹚×c+d,如﹙4-1﹚×6+6=24等。(用1、4、6、6算24点)
其他1条回答
为您推荐:
其他类似问题
24点游戏的相关知识
换一换
回答问题,赢新手礼包玩纸牌游戏24点!4466怎么得出24点呢?要求出过程!谢谢!_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
玩纸牌游戏24点!4466怎么得出24点呢?要求出过程!谢谢!
我有更好的答案
4✘6÷(4&#)
了朵朵的荷
6×6-(4+4)=24
根据我的精密计算
如果可以开根号的话很简单
4*4的根号*6*6的根号 如果可以用阶乘的话
(6+6-4-4)!=24
其他2条回答
为您推荐:
其他类似问题
玩纸牌的相关知识
换一换
回答问题,赢新手礼包24点类数学题解题技巧?_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
24点类数学题解题技巧?
完整的,最好是多难的24点类题都适用的,谢谢。
“巧算24点”是一种数学游戏,游戏方式简单易学,能健脑益智,是一项极为有益的活动. “巧算24点”的游戏内容如下:一副牌中抽去大小王剩下52张,(如果初练也可只用1~10这40张牌)任意抽取4张牌(称牌组),用加、减、乘、除(可加括号)把牌面上的数算成24.每张牌必须用一次且只能用一次,如抽出的牌是3、8、8、9,那么算式为(9—8)×8×3或3×8+(9—8)或(9—8÷8)×3等. “算24点”作为一种扑克牌智力游戏,还应注意计算中的技巧问题.计算时,我们不可能把牌面上的4个数的不同组合形式——去试,更不能瞎碰乱凑.这里向大家介绍几种常用的、便于学习掌握的方法: 1.利用3×8=24、4×6=24求解. 把牌面上的四个数想办法凑成3和8、4和6,再相乘求解.如3、3、6、10可组成(10—6÷3)×3=24等.又如2、3、3、7可组成(7+3—2)×3=24等.实践证明,这种方法是利用率最大、命中率最高的一种方法. 2.利用0、11的运算特性求解. 如3、4、4、8可组成3×8+4—4=24等.又如4、5、J、K可组成11×(5—4)+13=24等. 3.在有解的牌组中,用得最为广泛的是以下六种解法:(我们用a、b、c、d表示牌面上的四个数) ①(a—b)×(c+d) 如(10—4)×(2+2)=24等. ②(a+b)÷c×d 如(10+2)÷2×4=24等. ③(a-b÷c)×d 如(3—2÷2)×12=24等. ④(a+b-c)×d 如(9+5—2)×2=24等. ⑤a×b+c—d 如11×3+l—10=24等. ⑥(a-b)×c+d 如(4—l)×6+6=24等. 游戏时,同学们不妨按照上述方法试一试. 需要说明的是:经计算机准确计算,一副牌(52张)中,任意抽取4张可有1820种不同组合,其中有458个牌组算不出24点,如A、A、A、5. 不难看出,“巧算24点”能极大限度地调动眼、脑、手、口、耳多种感官的协调活动,对于培养我们快捷的心算能力和反应能力很有帮助.
为您推荐:
其他类似问题
数学题的相关知识
换一换
回答问题,赢新手礼包扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
用“数字牌”做24点游戏,抽出的4张牌是:2、3、4、6每张用一次,可用加减乘除,结果24,算式是多少,谢谢
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
4乘6=24,3-2=1.24乘1=24
为您推荐:
其他类似问题
扫描下载二维码

我要回帖

更多关于 单变量求解 的文章

 

随机推荐