24点算式计算器 算24点计算器
大家好,我是小典,我来为大家解答以上问题。24点算式计算器,算24点计算器,很多人还不知道,现在让我们一起来看看吧!
1、你好
2、下面的小程序有一些笨(语法很简单)
3、它无法分辨一些重复的情况
4、但结果还是基本正确的
5、#include<iostream>
6、using namespace std;
7、int main(){
8、int i1,i2,i3,i4,v,n1,n2;
9、int num=0;
10、int a,b;
11、double t1,t2,t3,t4,choice[4],s1[4],s2[4][4],s3[2],t;
12、for(;;){
13、cout<<"########################## 二十四点 ################################### 友情提示:A=1,J=11,Q=12,K=13 ";
14、cout<<"请给出你抽到的第一牌:";
15、cin>>choice[0];
16、cout<<"请给出你抽到的第二牌:";
17、cin>>choice[1];
18、cout<<"请给出你抽到的第三牌:";
19、cin>>choice[2];
20、cout<<"请给出你抽到的第四牌:";
21、cin>>choice[3];
22、cout<<"########################## THINKING ################################### ";
23、for(b=0;b<=2;b++)
24、for(a=3;a>=1+b;a--)if(choice[a]<choice[a-1]){
25、 t=choice[a-1];
26、 choice[a-1]=choice[a];
27、 choice[a]=t;}
28、for(int j=0;j<4;j++)cout<<j+1<<". "<<choice[j]<<" ";
29、cout<<" ";
30、for(i1=0;i1<4;i1++){
31、t1=choice[i1];
32、for(i2=0;i2<4;i2++){ if((i1-1)!=0 && t1==choice[i1-1])break;
33、if(i2!=i1){
34、t2=choice[i2];
35、s1[0]=t1+t2;
36、s1[1]=t1-t2;
37、s1[2]=t1*t2;
38、s1[3]=t1/t2;
39、for(i3=0;i3<4;i3++){
40、if(i3!=i1&&i3!=i2){
41、t3=choice[i3];
42、for(v=0;v<4;v++)
43、{s2[v][0]=s1[v]+t3;
44、s2[v][1]=s1[v]-t3;
45、s2[v][2]=s1[v]*t3;
46、s2[v][3]=s1[v]/t3;}
47、for(i4=0;i4<4;i4++){
48、if(i4!=i1&&i4!=i2&&i4!=i3){
49、t4=choice[i4];
50、for(n1=0;n1<4;n1++)for(n2=0;n2<4;n2++)
51、if(s2[n1][n2]+t4==24||s2[n1][n2]-t4==24||s2[n1][n2]*t4==24||s2[n1][n2]/t4==24){
52、cout<<"找到一种组合方案: (("<<t1;
53、if(s1[n1]==t1+t2)cout<<" + ";
54、if(s1[n1]==t1-t2)cout<<" - ";
55、if(s1[n1]==t1*t2)cout<<" * ";
56、if(s1[n1]==t1/t2)cout<<" / ";
57、if(n2==0)cout<<t2<<") + "<<t3;
58、if(n2==1)cout<<t2<<") - "<<t3;
59、if(n2==2)cout<<t2<<") * "<<t3;
60、if(n2==3)cout<<t2<<") / "<<t3;
61、 if(s2[n1][n2]+t4==24)cout<<") + "<<t4<<" = 24 ";
62、 if(s2[n1][n2]-t4==24)cout<<") - "<<t4<<" = 24 ";
63、 if(s2[n1][n2]*t4==24)cout<<") * "<<t4<<" = 24 ";
64、 if(s2[n1][n2]/t4==24)cout<<") / "<<t4<<" = 24 ";
65、num++;
66、}
67、}}}
68、}}}}
69、for(i1=0;i1<4;i1++){
70、t1=choice[i1];
71、for(i2=0;i2<4;i2++){
72、if(i2!=i1){
73、t2=choice[i2];
74、s1[0]=t1*t2;
75、s1[1]=t1/t2;
76、for(i3=0;i3<4;i3++){
77、if(i3!=i1&&i3!=i2){
78、t3=choice[i3];
79、for(i4=0;i4<4;i4++){
80、if(i4!=i1&&i4!=i2&&i4!=i3){
81、t4=choice[i4];
82、s3[0]=t3*t4;
83、s3[1]=t3/t4;
84、for(n1=0;n1<2;n1++)for(n2=0;n2<2;n2++)
85、if(s1[n1]+s3[n2]==24||s1[n1]-s3[n2]==24){
86、cout<<"找到一种组合方案: ("<<t1;
87、if(s1[n1]==t1*t2)cout<<" * ";
88、if(s1[n1]==t1/t2)cout<<" / ";
89、if(s1[n1]+s3[n2]==24)cout<<t2<<") + ("<<t3;
90、if(s1[n1]-s3[n2]==24)cout<<t2<<") - ("<<t3;
91、 if(s3[n2]==t3*t4)cout<<" * "<<t4<<") = 24 ";
92、 if(s3[n2]==t3/t4)cout<<" / "<<t4<<") = 24 ";
93、 num++;
94、}
95、}}}
96、}}}}
97、cout<<"总共有"<<num<<"种解法。 ";
98、if(num==0)cout<<"这四张牌无法构成24点~~~ ";
99、num=0;
100、}
101、return 0;
102、}
本文到此讲解完毕了,希望对大家有帮助。