这道题是可以倒着模拟的,首先找出所有1:2:3的数,然后比较有无重复数字。首先进行循环每个1:2:3,然后把每个位上的数字存进一个数组里,最后通过这个数组进行有无重复数字的判断。`
#include<iostream>
using namespace std;
int main()
{
int a[3],b[10];
int i,j;
for(a[0]=100;a[0]<=333;a[0]++)
{
a[1]=a[0]*2;
a[2]=a[0]*3;
for( i=0,j=0;i<3;i++)
{
b[j]=a[i]/100;
b[j+1]=a[i]/10%10;
b[j+2]=a[i]%10;
j=j+3;
}
for(int i=0;i<=9;i++)//枚举
for(int j=i+1;j<=9;j++)//只要比较后面的就行了
{
if(b[i]==b[j])
goto A;
}
cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<endl;
A: continue;
}
}