1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.输出所有解。

解法一:
void result(int m, int *restAdd, int *restMultip)
{
*restAdd += m / 100 + m / 10 % 10 + m % 10;
*restMultip *= (m / 100) * (m / 10 % 10) * (m % 10);
return;
}

int m=0;
int restAdd;
int restMultip;
for(m=123;m<=329;m++)//第一个的取值范围为 123~333(999/3)
{
restAdd = 0;
restMultip = 1;
result(m,&restAdd,&restMultip);
result(2m, &restAdd, &restMultip);
result(3
m, &restAdd, &restMultip);
if (restAdd == 45 && restMultip == 362880)//每个数值都是独立的,45是个个数值相加,362880为相乘
{
printf(“num:%d %d %d\n”,m,m2,m3);
}
}
解法二:
char a[10]= " “;
int i,j;
for(int m =123;m<=329;m++)
{
sprintf(a,”%d",m1000000+2m1000+3m);
for(i=1,j=‘1’;j<=‘9’;memchr(a,j++,9)&&i++)
{
if(i==9)
printf("%d %d %d\n",m,m2,m3);
}
}

猜你喜欢

转载自blog.csdn.net/wutieliu/article/details/88240553