P1008 三连击

题目描述:将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。
分析:由这9个数构成的三位数最小为123,最大为987。所以遍历范围是123 ~ 987/3 = 329,每次取定最小的数后得到其2倍、3倍,将这三个数的每一位存到数组中,用排序保证每个数字只用一次。
C++代码:

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<vector>
#define ll long long
using namespace std;
#define inf 0x3f3f3f3f
int main()
{
    int i,j,a[15];
    bool ans;
    for (i=123;i<=329;i++)
    {
        a[1]=i%10;
        a[2]=i%100/10;
        a[3]=i/100;
        a[4]=2*i%10;
        a[5]=2*i%100/10;
        a[6]=2*i/100;
        a[7]=3*i%10;
        a[8]=3*i%100/10;
        a[9]=3*i/100;
        sort(a+1,a+10);
        ans=true;
        for (j=1;j<=9;j++) 
          if (a[j]!=j)  //说明前面有数字出现次数 > 1
          ans=false;
        if (ans) cout<<i<<" "<<i*2<<" "<<i*3<<endl;
    }
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【1】7,9,-1,5,( ) A、4;B、2;C、-1;D、-3 分析:选D,7+9=16;9+(-1)=8;(...
    Alex_bingo阅读 19,690评论 1 19
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,857评论 0 33
  • 第一章数和数的运算 一概念 (一)整数 1整数的意义 自然数和0都是整数。 2自然数 我们在数物体的时候,用来表示...
    meychang阅读 2,820评论 0 5
  • 我们大多数人都在内心有着改变自己的想法。但是,生活的种种会让我们举步维艰。别人的冷言冷语会让你的热情一下跌倒...
    葭州寒雪阅读 329评论 0 0
  • 响应式并不一定是最好的选择 如果一个点餐网站预算充足,定制一个手机移动版,可以基于GPS在附近店家点餐或者一个da...
    shoutinggg阅读 713评论 0 0

友情链接更多精彩内容