4 4 10 10的24点怎么做. 1 3 4 6 1 3 9 10 3 8 8 8 帮帮忙、、、不懂得怎们做.或者告诉我做这些的秘诀

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 19:59:55
4 4 10 10的24点怎么做. 1 3 4 6 1 3 9 10 3 8 8 8 帮帮忙、、、不懂得怎们做.或者告诉我做这些的秘诀

4 4 10 10的24点怎么做. 1 3 4 6 1 3 9 10 3 8 8 8 帮帮忙、、、不懂得怎们做.或者告诉我做这些的秘诀
4 4 10 10的24点怎么做. 1 3 4 6 1 3 9 10 3 8 8 8 帮帮忙、、、不懂得怎们做.
或者告诉我做这些的秘诀

4 4 10 10的24点怎么做. 1 3 4 6 1 3 9 10 3 8 8 8 帮帮忙、、、不懂得怎们做.或者告诉我做这些的秘诀
研究了一遍,不认为这是个经典程序;开始用冒泡排序将4张牌从大到小排列,后面没看出来有什么用,后面都是循环选取不同于先选的牌,大小顺序没用上.
for(;;)
{
cout<<"请给出你抽到的第一牌:";
cin>>choice[0];
cout<<"请给出你抽到的第二牌:";
cin>>choice[1];
cout<<"请给出你抽到的第三牌:";
cin>>choice[2];
cout<<"请给出你抽到的第四牌:";
cin>>choice[3];//输入;
for(b=0;b<=2;b++)
for(a=3;a>=1+b;a--)if(choice[a]<choice[a-1])
{
t=choice[a-1];
choice[a-1]=choice[a];
choice[a]=t;
}//冒泡排序;
for(int j=0;j<4;j++)cout<<j+1<<"."<<choice[j]<<" ";
cout<<"\n";
for(i1=0;i1<4;i1++)
{
t1=choice[i1];//从大到小选第一张;
for(i2=0;i2<4;i2++)
{
if((i1-1)!=0 && t1==choice[i1-1])break;//这应该就是遇到相同牌,跳出循环,重新输入4张牌吧;
if(i2!=i1)
{
t2=choice[i2];//循环选取不同于第一张的牌进行4种运算;
s1[0]=t1+t2;
s1[1]=t1-t2;
s1[2]=t1*t2;
s1[3]=t1/t2;//数组S1[]记录前2张运算结果;
{
cout<<"找到第"<<mmm<<"种组合方案:\n(("<<t1;
if(s1[n1]==t1+t2)cout<<" + ";
if(s1[n1]==t1-t2)cout<<" - ";
if(s1[n1]==t1*t2)cout<<" * ";
if(s1[n1]==t1/t2)cout<<" / ";
if(n2==0)cout<<t2<<") + "<<t3;
if(n2==1)cout<<t2<<") - "<<t3;
if(n2==2)cout<<t2<<") * "<<t3;
if(n2==3)cout<<t2<<") / "<<t3;
if(s2[n1][n2]+t4==24)cout<<") + "<<t4<<" = 24 \n";
if(s2[n1][n2]-t4==24)cout<<") - "<<t4<<" = 24 \n";
if(s2[n1][n2]*t4==24)cout<<") * "<<t4<<" = 24 \n";
if(s2[n1][n2]/t4==24)cout<<") / "<<t4<<" = 24 \n";
num++;
mmm++;
}//输出方法和统计个数;