注册 登录
编程论坛 C++教室

求高手帮忙.感谢!

LlCcCc 发布于 2011-01-24 12:14, 479 次点击
123456789九个数 组成三个三位数 并且存在x 2x 3x的倍数关系 求所有组合     用C语言写
7 回复
#2
LlCcCc2011-01-24 12:15
比如说192 384  576 这三个数就是成倍数关系,而且使用这九个数组成的.
#3
rjsp2011-01-24 13:20
你自己为什么不先做做,直接看别人的答案能学到什么?
这种简单题目,分分钟钟的事,但如果一直不去自己思考,看一辈子也没什么出息。记住,别人的代码只有自己深思过才有借鉴意义,否则反而会破坏自己的思路。

#include <iostream>
using namespace std;

int main()
{
    for( size_t a=1; a<=9; ++a )
        for( size_t b=1; b<=9; ++b )
            for( size_t c=1; c<=9; ++c )
            {
                if( a==b || b==c || c==a ) continue;

                size_t n = a*100 + b*10 + c;
                if( 3*n > 999 ) break;

                size_t d = 2*n/100;
                size_t e = 2*n/10%10;
                size_t f = 2*n%10;
                size_t g = 3*n/100;
                size_t h = 3*n/10%10;
                size_t i = 3*n%10;

                if( (1<<a | 1<<b | 1<< c | 1<<d | 1<<e | 1<<f | 1<<g | 1<<h | 1<<i) == 0x3FE )
                    cout << a << b << c << ' ' << d << e << f << ' ' << g << h << i << endl;
            }

    return 0;
}
#4
LlCcCc2011-01-24 13:34
回复 3楼 rjsp
我也想自己写,不过我确实写不出来.我刚学C语言,编程都不太会.一个学长出的问题,我感觉自己真的做不出来,他说没有难度,但我觉得我应该写点基础的,感觉这题就是让我想一天我也想不出来.
#5
qq10235692232011-01-24 16:17
不会很难啊,刚入门的话可以用基础的方法做的。
#6
lyj2010lyj2011-01-24 17:09
回复 3楼 rjsp
楼主厉害,c语言,不需要这么复杂吧?
#7
点线面2011-01-24 19:21
程序代码:
#include<stdio.h>

int sok(int i)
{
       return (i%10)*(i/100)*(i/10%10);   
}

int main()
{
    int i;
for(i=0;i<=999;i++)
{   
   if(sok(i)*sok(2*i)*sok(3*i)==362880)   //9! == 362880 不重复的
   {
       printf("%d %d %d",i,2*i,3*i);
          puts("");
   }
  
}

   getchar();
   return 0;
}
这个容易理解
#8
rjsp2011-01-25 08:18
9! == 362880 不重复的

------
 1*2*3*4*5*6*7*8*9
=1*1*3*5*6*7*8*8*9
1