欢迎使用CSDN-markdown编辑器

来源:互联网 发布:提升淘宝搜索排名 编辑:程序博客网 时间:2024/06/10 19:49

题目背景

本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。

题目描述

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

输入输出格式

输入格式:

木有输入

输出格式:

若干行,每行3个数字。按照每行第一个数字升序排列

题目分析:

这一题比较坑,用暴力枚举判断是否符合条件就可以,从第一个数开始枚举,然后判断它的俩倍和三倍;

#include <bits/stdc++.h>using namespace std;int a[10]={0};int shi(int x){    return x/10%10;}int ge(int x){    return x%10;}int bai(int x){    return x/100;}int main (){    for(int i=1;i<=9;i++)    a[i]=0;    int i=100;    while(i<=333)    {        memset(a,0,sizeof(a));        if(ge(i)!=shi(i)&&ge(i)!=bai(i)&&shi(i)!=bai(i)&&ge(i)!=0&&shi(i)!=0&&bai(i)!=0)        {            a[ge(i)]=1;a[shi(i)]=1;a[bai(i)]=1;            int n;n=i;            n+=n;            if(ge(n)!=shi(n)&&ge(n)!=bai(n)&&shi(n)!=bai(n)&&shi(n)!=0&&ge(n)!=0&&a[ge(n)]==0&&a[shi(n)]==0&&a[bai(n)]==0)            {                a[ge(n)]=1;a[shi(n)]=1;a[bai(n)]=1;                n/=2;n*=3;                if(ge(n)!=shi(n)&&ge(n)!=bai(n)&&shi(n)!=bai(n)&&shi(n)!=0&&ge(n)!=0&&a[ge(n)]==0&&a[shi(n)]==0&&a[bai(n)]==0)                {                    cout<<n/3<<" "<<n/3*2<<" "<<n;                    cout<<endl;                }            }        }    i++;    }}