#include<stdio.h>
int main()
{
int num[6],i[4],sign;
float left,right;
char ope[5]={' ','+','-','*','/'};// 注意ope[0]=' '
int j;
for(j=1;j<=6;j++)
scanf("%d",&num[j]);
for(i[1]=1;i[1]<=4;i[1]++)
{
if(i[1]<4||num[2]!=0)
{
for(i[2]=1;i[2]<=4;i[2]++)
{
if(i[2]<4||num[3]!=0)
{
for(i[3]=1;i[3]<=4;i[3]++)
{
if(i[3]<4||num[4]!=0)
{
for(i[4]=1;i[4]<=4;i[4]++)
{
if(i[4]<4||num[5]!=0)
{
left=0;
right=num[1];
sign=1;
for(j=1;j<=4;j++)
{
switch(ope[i[j]])
{
case '+':
left=left+sign*right;
sign=1;
right=num[j+1];
break;
case '-':
left=left+sign*right;
sign=-1;
right=num[j+1];
break;
case '*':
right=right*num[j+1];
break;
case '/':
right=right/num[j+1];
break;
}
}
}
if(left+sign*right==num[6])
{
for(j=1;j<=4;j++)
printf("%d%c",num[j],ope[i[j]]);
printf("%d=%d\n",num[5],num[6]);
}
}
}
}
}
}
}
}
return 0;
}
第一次遇到如此多的循环嵌套,简直醉了。不过,枚举思想发挥的真是淋漓尽致,好玩。
枚举多层循环嵌套
最新推荐文章于 2020-04-30 15:19:26 发布