求解一个简单的算法有关问题

求解一个简单的算法问题
有一个题目,就是判断1000以内,各个位上没有重复的偶数,这个要怎么判断啊,用蛮力法一个个试过来?
然后每一次循环都用三个整型变量a,b,c,分别储存偶数的个位、十位、百位,然后判断是否出现重复?


觉得这样的算法很麻烦,有没有更好的想法,最好能附上代码~谢谢啦

------解决方案--------------------
其实1000以内这样的数据规模,一个一个数分解成个位十位百位再判断速度上一点也不慢。如果真不想这么做的话,可以尝试构造法:
因为偶数都是个位以0、2、4、6、8为结尾的,且1000以内的偶数最多只有3位(1000明显不满足各位不重复的条件),则可以:
(1)打印符合条件的1位数,即0,2,4,6,8
(2)打印符合条件的2位数,即十位为1~9,个位是0,2,4,6,8且个位与十位不相等
(3)打印符合条件的3位数,即百位为1~9,十位为0~9且与百位不相等,个位是0,2,4,6,8且个位与十位、百位不相等

#include <stdio.h>

int main()
{
    char a, b, c;

    for(c = '0'; c <= '8'; c += 2){
        putchar(c);
        putchar('\n');
    }
    for(b = '1'; b <= '9'; ++b){
        for(c = '0'; c <= '8'; c += 2){
            if(c == b) continue;
            putchar(b);
            putchar(c);
            putchar('\n');
        }
    }
    for(a = '1'; a <= '9'; ++a){
        for(b = '0'; b <= '9'; ++b){
            if(b == a) continue;
            for(c = '0'; c <= '8'; c += 2){
                if(c == b 
------解决方案--------------------
 c == a) continue;
                putchar(a);
                putchar(b);
                putchar(c);
                putchar('\n');
            }
        }
    }

    return 0;
}