寻找三位数

题目正文

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

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

输入

输出

输出每行有三个数,为满足题设三位数。各行为满足要求的不同解。

代码

#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
    
    
    int a,b,c,d,e,f,x,y,g,h,t;
    for(int i=123;i<328;i++)
    {
    
    
         a=i/100;
         b=i/10%10;
         c=i%10;
         if(a!=b && a!=c && b!=c)
         {
    
    
             x=2*i;
             d=x/100;
             e=x/10%10;
             f=x%10;
             if(d!=e && d!=f && e!=f && d!=a && d!=b && d!=c && e!=a && e!=b && e!=c&& f!=a && f!=b && f!=c)
             {
    
    
                    y=3*i;
                    g=y/100;
                    h=y/10%10;
                    t=y%10;
                 if(g!=h && g!=t && h!=t && g!=a && g!=b && g!=c && h!=a && h!=b && h!=c && t!=a && t!=b && t!=c && g!=d && g!=e && g!=f && h!=d && h!=e && h!=f && t!=d && t!=e && t!=f && h!=0)
                 {
    
    
                    cout<<i<<" "<<x<<" "<<y<<endl;
                 }
                }
             }
         }
    return 0;
}

总结

这题我觉得我自己是用了一种比较麻烦的方法,就是把每一个数字都比较一下是否相等,一开始我还犯了一个很简单的错误,就是把两个变量当成一个使用,在第三步比较的时候一直不出来结果,后来我改正了,发现我自己没有认真审题,不能包括零,得出的结果是五行,后来限制条件之后,提交成功了!

猜你喜欢

转载自blog.csdn.net/MarigoldLi/article/details/117425759