首页 > 其他 > 详细

三连击

时间:2019-02-15 15:17:20      阅读:191      评论:0      收藏:0      [点我收藏+]

题目描述

1,2,?,99个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。

例如:192 384 576

解法1:用字符串解决

#include <cstdio>
using namespace std;
int main(){
    for (int i=123;i<=333;i++){
        char a[4],b[4],c[4];//字符串结束符占用一个字符空间
        sprintf(a,"%d",i);//将int转换为char
        sprintf(b,"%d",i*2);
        sprintf(c,"%d",i*3);
        bool num[10] = {0};
        num[a[0]-48] = true;//ascii码中,0-9对应48-57
        num[a[1]-48] = true;
        num[a[2]-48] = true;
        num[b[0]-48] = true;
        num[b[1]-48] = true;
        num[b[2]-48] = true;
        num[c[0]-48] = true;
        num[c[1]-48] = true;
        num[c[2]-48] = true;
        if (num[0]) continue;//题目要求1-9的数字,出现0即为Wrong Answer
        int count = 0;
        for (int i=0;i<10;i++) if (num[i]) count ++;
        if (count == 9){
            printf("%s %s %s\n",a,b,c);
        }
    }
    return 0;
}

 

三连击

原文:https://www.cnblogs.com/litifeng/p/10383743.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!