
程序代码:
#include<stdio.h>
int main(int argc,char *argv[])
{
int Ifequal(int m,int n);
int i,j,k,t;
for(i=1;i<4;i++)
for(j=1;j<=9;j++)
for(k=1;k<=9;k++)
{
t=i*100+j*10+k;
if(Ifequal(t,2*t) && Ifequal(t,3*t) && Ifequal(2*t,3*t) && t>100 && 3*t<1000)
printf(" %d",t);
}
return 0;
}
int Ifequal(int m,int n)
{
int a[3]={0},b[3]={0},i,j;
for(i=0;i<3;i++)
{
a[i]=m%10;
m=m/10;
}
for(i=0;i<3;i++)
{
b[i]=n%10;
n=n/10;
}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(a[i]==b[j] || a[i]==0 || b[j]==0)
return 0;
if((a[0]==a[1] || a[1]==a[2] || a[0]==a[2] )||(b[0]==b[1] || b[1]==b[2] || b[0]==b[2]))
return 0;
return 1;
}
汗 太长 坐等求最优算法