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++;}//输出方法和统计个数;