用1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.输出所有解.#include#includeint main(){ int a,b,c,d,e,f,g,h,i; for(a=1;a

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 16:39:28

用1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.输出所有解.#include#includeint main(){ int a,b,c,d,e,f,g,h,i; for(a=1;a
用1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.输出所有解.
#include
#include
int main()
{
int a,b,c,d,e,f,g,h,i;
for(a=1;a

用1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.输出所有解.#include#includeint main(){ int a,b,c,d,e,f,g,h,i; for(a=1;a
这道题以前做过,有点印象


  其实这道题就2个地方要注意,也是解题关键


abc:def:ghi=1:2:3
1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次


对于第一个地方,我们可以用1个循环,加3个变量来实现
就是
for(i = 123; i <= 329; i++)
{
    j = i * 2;    //i的2倍
    k = i * 3;    //i的3倍
}
i 最小只能是123,最大只能是329(因为最大数字只能是987)


第2个地方的实现,我们可以用数学的方法来实现
9加起来真能是45,9乘起来只能是362880


所以我们可以将前面的i,j,k分别分解出来的9位数字相加,相乘, 
看最后的结果是不是45,362880




具体代码
//用1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.输出所有解.

#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;
}




效果:





PS:若有不明白的地方,

用1,3,5,7,9这5个数字组成一个三位数ABC和一个两位数D……用1,3,5,7,9这5个数字组成一个三位数ABC和一个两位数DE,再用0,2,4,6,8这5个数字组成一个三位数FGH和一个两位数IJ.求算式ABC×DE-FGH×IJ的计算 用1~9组成3个三位数,每个数字使用一次使得abc:def:ghi=1:2:3,输出所有解c 用1,2,……9组成三个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:输出所有解 JAVA题目:用1,2,3,……9组成3个三位数 abc,def和ghi,每个数字恰好试用一次,要求abc:def:ghi=1:2:3. 用0,1,2,3,……,9这十个数(1)可以组成多少个三位数(2)可以组成多少个没有重复数字的三位偶数 用数字0,1,2,3组成三位数 可以组成多少个不同的三位数?可以组成多少个没有重复数用数字0,1,2,3组成三位数可以组成多少个不同的三位数?可以组成多少个没有重复数字的三位数? 用0、1、2、3四个数字组成一个三位数,可以组成多少个偶数? 用0,1,2,3,…9这10个数字,可以组成能被5整除,且无重复数字的三位数有多少个? 0,1,2,3组成三位数,问可以组成多少个不同的三位数?可以组成多少个没有重复数字的三位数? 0,1,2,3可以组成多少个三位数 用1 2 3三个数字组成的三位数共有6个,这些三位数一定能被( )整除 用数字1 2 3 4,可以组成多少个不同的三位数?可以组成多少个没有重复的三位数? 用0,1,2,3,4这5个数字组成一个三位数,组成的这个三位数单数的可能性是 多少是18个吗 用4、5、6三个数字,按照下面的要求组成不同的三位数,分别能组成多少个?(1)2的倍数的三位数(2)5的倍数的三位数(3)3的倍数的三位数 用0、1、2、3、4、5、6、7、8、9、这十一个数字组成一道减法算式.是四位数减三位数等于三位数. 从1,2,3,4中每次任取3个数组成三位数,一共能组成()个不同的三位数 由数字0,1,2,3组成三位数,问:可以组成多少个没有重复数字的三位数? 用1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.输出所有解.#include#includeint main(){ int a,b,c,d,e,f,g,h,i; for(a=1;a 1,2,3,6,7,9,组成的2个三位数和是1000,可以组成多少这样的三位数,数字是不重复的