算法竞赛_排列_C++

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

#include <bits/stdc++.h>
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 <string.h>

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

 说明:当第一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值