| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2522 人关注过本帖, 1 人收藏
标题:用1,2....9组成三个三位数abc,def,ghi,每个数字恰好使用一次,要求abc:def ...
只看楼主 加入收藏
a772583372
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-6-16
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:11 
用1,2....9组成三个三位数abc,def,ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3,输出所有解
用1,2....9组成三个三位数abc,def,ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3,输出所有解
2013-06-16 16:37
桀骜vic
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2013-6-16
收藏
得分:5 
我貌似找到了,应该是327,654,981,这三组数。
2013-06-16 17:13
桀骜vic
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2013-6-16
收藏
得分:0 
回复 楼主 a772583372
我貌似找到了,应该是327,654,981,这三组数。
2013-06-16 18:18
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:0 
就一组吗?

有4组
192 384 576
219 438 657
273 546 819
327 654 981

[ 本帖最后由 YJ_Hao 于 2013-6-16 20:41 编辑 ]
2013-06-16 20:40
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:0 
程序代码:
#include 

using namespace std;
int f1(int a)
{
    int b=0;
    while(a)
    {
        int n=a%10;
        a/=10;
        b+=n;
       
    }
    return b;
}

int f2(int a)
{
    int c=1;
   
    while(a)
    {
        int n=a%10;
        a/=10;
        c*=n;
       
    }
    return c;
}
int main()
{
    for(int i=123; i<=987/3; i++)
    {
        if(  f1(i)+f1(2*i)+f1(3*i)==45 && f2(i)*f2(i*2)*f2(i*3)==362880)
            cout << i<<" "<<2*i<<" "<<3*i << endl;
    }
   
    return 0;
}

www.qunxingw.wang
2013-06-16 22:16
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:5 
楼上是不是没有编译运行啊?
2013-06-17 17:40
huaheshang
Rank: 2
来 自:日照
等 级:论坛游民
帖 子:91
专家分:37
注 册:2010-12-7
收藏
得分:5 
#include"stdio.h"
#include"math.h"
int main()
{
   long int a,b,c,d,e,f,g,h,i,k1,k2,k3,n=0;
        for(a=1;a<=9;a++)
        for(b=1;b<=9;b++)
        for(c=1;c<=9;c++)
        for(d=1;d<=9;d++)
        for(e=1;e<=9;e++)
        for(f=1;f<=9;f++)
        for(g=1;g<=9;g++)
        for(h=1;h<=9;h++)
        for(i=1;i<=9;i++)
        {
            k1=100*a+10*b+c;
            k2=100*d+10*e+f;
            k3=100*g+10*h+i;
            if((2*k1==k2)&&(3*k1==k3))
              {
                  if(a+b+c+d+e+f+g+h+i==45)
                   {
                       if(a*b*c*d*e*f*g*h*i==362880)
                       {
                           n++;
                           }
                       
                       }
                  
                  
                  }
            
            
            
            
            }
    printf("n=%d",n);
    return 0;
   
    }
希望有简便程序
2013-06-17 17:58
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:5 
回复 6楼 YJ_Hao
能运行
不知什么原因常常粘贴不全,include<iostream>

www.qunxingw.wang
2013-06-17 19:02
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
回复 5楼 qunxingw
精妙,佩服
1+2+3+4+5+6+7+8+9 = 45
1*2*3*4*5*6*7*8*9 = 362880

但未必是唯一解,我用代码暴力遍历了一下,还找到
124445799
这一组解
2013-06-25 09:25
wyw19880809
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:178
专家分:738
注 册:2013-3-14
收藏
得分:0 
楼上的不是数学上的1:2:3,应该不算的吧!!!!
2013-06-25 09:48
快速回复:用1,2....9组成三个三位数abc,def,ghi,每个数字恰好使用一次,要求ab ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019286 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved