欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

算法竞赛_排列_C++

程序员文章站 2024-01-27 21:26:22
1,2,3,… , 7,8,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。输出所有解。 #include...

1,2,3,… , 7,8,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。输出所有解。

#include 
using namespace std;
int main(){
    int n, i, j;
    char a[10];
    for(n = 123; n < 330; n++){
        sprintf(a, "%d", n * 1000000 + n * 2 * 1000 + n * 3);

        for(j = 0, i = '1'; i <= '9'; memchr(a, i++, 9) && j++);

        if (j == 9) {
            printf("%d %d %d \n", n, n * 2, n * 3);
        }
    }
return 0;
}
说明:
sprintf()函数的原型:int sprintf( char *buffer, const char *format [, argument,...] );
sprintf与printf函数的区别:二者功能相似,但是sprintf函数打印到字符串中,而printf函数打印输出到屏幕上。
memchr()函数的原型:extern void *memchr(void *buf, char ch, unsigned count);

 用法:#include 

 功能:从buf所指内存区域的前count个字节查找字符ch。

 说明:当第一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL。