ZQOJ //1149: 组合三位数之二

论坛 期权论坛 脚本     
匿名技术用户   2020-12-30 23:10   11   0

题目描述

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

输入

输出

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

样例输出

192 384 576
.........

//=192----<330
#include<stdio.h>

int IsStr(char b[])
{
    int a[10] = {0};

    for(int flag = 0; flag < 9; flag ++)
    {
        switch(b[flag])
        {
            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;
    }
    else
    {
        return -1;
    }

}

int main()
{
    char b[10] = {0};

    for (int i = 192; i < 333; i++)
    {
        sprintf(b, "%d%d%d", i, i * 2, i * 3);//char类型 把指定结果输出到字符串中
        if (IsStr(b) == 1)
        {
            printf("%d %d %d\n", i, i * 2, i * 3);
        }
    }

    return 0;
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP