1149: 组合三位数之二

来源:互联网 发布:数据科学入门 编辑:程序博客网 时间:2024/06/16 12:38

Description

把1,2,3,4,5,6,7,8,9,组成三个三位数(每个数只能用一次),第二个数是第一个数的2倍,第三个数是第一个数的3倍,这三个三位数各是多少?答案可能有很多组,请按第一个数的升序顺序输出每组的三个三位数。

Input

Output

输出所有满足条件的三位数组合,按第一个数的升序顺序输出。

Sample Input

Sample Output

192 384 576219 438 657.........

HINT

Source


#include <stdio.h>#include <stdlib.h>int checkStr( char  b[] ){    int a[9] = {0};    int index = 0;    for ( ; index < 9; index ++ )    {        switch( b[index] )        {        case '1':        {            a[0] ++;            break;        }        case '2':        {            a[1] ++;            break;        }        case '3':        {            a[2] ++;            break;        }        case '4':        {            a[3] ++;            break;        }        case '5':        {            a[4] ++;            break;        }        case '6':        {            a[5] ++;            break;        }        case '7':        {            a[6] ++;            break;        }        case '8':        {            a[7] ++;            break;        }        case '9':        {            a[8] ++;            break;        }        }    }    if ( a[0] == 1 && a[1] == 1 && a[2] == 1 && a[3] == 1 && a[4] == 1 &&            a[5] == 1 && a[6] == 1 && a[7] == 1 && a[8] == 1 )    {        return 1;    }    return -1;}int main(){    int i ;    char b[10] = {0};    for ( i=100; i <333; i ++ )    {        sprintf( b, "%d%d%d", i, i*2, i*3 );//将int型以字符串形式读入,便于后面查重复数字        if ( checkStr( b ) == 1 )        {            printf( "%d %d %d\n", i, i*2, i*3 );        }    }    return 0;}


原创粉丝点击