ZZULIOJ1149: 组合三位数之二

题目描述

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

输入

输出

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

样例输出 Copy

192 384 576
.........
#include <stdio.h>

int main()
{
    int a, b, c, i, j, k;
    for (i = 1; i <= 3; i++) // 因为三位数最大为9开头,所以i不能大于3
    {
        for (j = 1; j <= 9; j++)
        {
            for (k = 1; k <= 9; k++)
            {
                if (i == j || i == k || j == k)
                    continue;
                a = i * 100 + j * 10 + k;
                b = a * 2;
                c = a * 3;
                if ((a % 10 + a / 10 % 10 + a / 100 + b % 10 + b / 10 % 10 + b / 100 + c % 10 + c / 10 % 10 + c / 100) == (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9) &&
                    (a % 10) * (a / 10 % 10) * (a / 100) * (b % 10) * (b / 10 % 10) * (b / 100) * (c % 10) * (c / 10 % 10) * (c / 100) == (1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9))
                    printf("%d %d %d\n", a, b, c);
            }
        }
    }
        return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值