排列(permutation)

来源:互联网 发布:caffe 安装cudnn 编辑:程序博客网 时间:2024/06/14 11:24

用1,2,3,…,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要 求abc:def:ghi=1:2:3。按照“abc def ghi”的格式输出所有解,每行一个解。提示:不必 太动脑筋。

#include <stdio.h>
void result(int num, int &result_add, int &result_mul)
{
    int i, j, k;
    i = num / 100;        //百位
    j = num / 10 % 10;    //十位
    k = num % 10;         //个位
    result_add += i + j + k;    //分解出来的位数相加
    result_mul *= i * j * k;    //相乘
}

int main()
{
    int i, j, k;
    int result_add, result_mul;
    for(i = 123; i <=329; i++)
    {
        j = i * 2;
        k = i * 3;
        result_add = 0;
        result_mul = 1;
        result(i, result_add, result_mul);
        result(j, result_add, result_mul);
        result(k, result_add, result_mul);
        if(result_add == 45 && result_mul == 362880)
        {
             printf("%d %d %d\n", i, j, k);
        }
    }
    return 0;
}