24点算式计算器 算24点计算器

生活知识 2024-03-31 18:44:18
导读 大家好,我是小典,我来为大家解答以上问题。24点算式计算器,算24点计算器,很多人还不知道,现在让我们一起来看看吧!1、你好2、下面的小...
2024-03-31 18:44:18

大家好,我是小典,我来为大家解答以上问题。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、}

本文到此讲解完毕了,希望对大家有帮助。

免责声明:本文由用户上传,如有侵权请联系删除!