那我就贴一段好了……
算24的代码,sun要不要玩玩??
/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http:// **
*****************************************************************/
#include <algorithm>
#include <iostream>
using namespace std;
int num[4],opt[4],res=24,i;
char opts[]="+-*/";
bool IsOK()
{
double sum=num[0];
for (i=0;i<3;i++)
switch (opt[i])
{
case 0:sum+=num[i+1];break;
case 1:sum-=num[i+1];break;
case 2:sum*=num[i+1];break;
case 3:if (num[i+1]==0)return false;
sum/=num[i+1];break;
}
if (sum == res)return true;
return false;
}
int main()
{
while (scanf("%d%d%d%d",num+0,num+1,num+2,num+3)!=EOF)
{
sort(num,num+4);
opt[0]=opt[1]=opt[2]=0;
while (!IsOK())
{
for (i=0;i<3 && opt[i]++>=3;i++) opt[i]=0;
if (i == 3 && !next_permutation(num,num+4))
{
puts("No Answer!");
goto next;
}
}
printf("((%d %c %d) %c %d) %c %d = %d\n",
num[0],opts[opt[0]],
num[1],opts[opt[1]],
num[2],opts[opt[2]],
num[3],res);
next:;
}
}
[[it] 本帖最后由 StarWing83 于 2008-6-22 12:34 编辑 [/it]]