用1~9的9个数字组成三个三位数,成1:2:3的比例

时间:2020-12-08 00:11:35
#include <stdio.h>


bool is_ok(int a[])
{
    if (a[0])
        return false;
    for (int i = 1; i < 10; i++)
    {
        if (a[i] != 1)
            return false;
    }
    return true;
}


void print_numbers()
{
    int a[10] = { 0 };
    for (int i = 123; i <= 987/3; i++)
    {
        for(int j = 0; j < 10; j++)
            a[j] = 0;


        ++a[i/100];
        ++a[(i/10)%10];
        ++a[i%10];


        ++a[(i*2)/100];
        ++a[((i*2)/10)%10];
        ++a[(i*2)%10];


        ++a[(i*3)/100];
        ++a[((i*3)/10)%10];
        ++a[(i*3)%10];


        if (is_ok(a))
        {
            printf("%d\t%d\t%d\n", i, i*2, i*3);
        }
    }
}


int main()
{
    print_numbers();

}