码迷,mamicode.com
首页 > 其他好文 > 详细

组成三位数

时间:2018-07-19 13:38:03      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:sub   include   problem   一个   als   problems   pre   解决   space   

3023: 组成三位数

时间限制: 1 Sec  内存限制: 125 MB
提交: 6  解决: 2
[提交][状态][讨论版][命题人:外部导入]

题目描述

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

 

例如:三个三位数192,384,576满足以上条件。

 

输入

本题无输入。

 

输出

输出所有符合要求的三个三位数,每一组占一行,数字之间由一个空格分隔。

每组中的三个数字按照从小到大输出,各组之间按照每组的第一个数从小到大输出。

 

样例输入

本题无输入。

样例输出

本题结果是唯一的,所以不提供输出样例。满足条件的第一组数据为
192 384 576


解题思路:开一个for,从123开始到329判断,是否满足各位数和等于45,各位数乘积等于362880即可,注意一定要尽量减少判断的数目,因为最大数是987,所以i的最大值是329
#include<bits/stdc++.h>
using namespace std;

bool check(int x,int y,int z)
{
    if(x%10+x/10%10+x/100+y%10+y/10%10+y/100+z%10+z/10%10+z/100==45)
        if((x%10)*(x/10%10)*(x/100)*(y%10)*(y/10%10)*(y/100)*(z%10)*(z/10%10)*(z/100)==362880)
        return true;
    return false;
}

int main()
{
    for(int i=123;i<=329;++i)
    {
        int a=i,b=2*i,c=3*i;
        if(check(a,b,c))cout<<a<<" "<<b<<" "<<c<<endl;
    }
    return 0;
}

 

组成三位数

标签:sub   include   problem   一个   als   problems   pre   解决   space   

原文地址:https://www.cnblogs.com/wjw2018/p/9334755.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!