解题思路:这个题,主要是理解意思,分为二步来做,第一步:判断数是1:2:3的比例;

                                                                               第二步:判断数是123456789组成,但是不能有重复值;
注意事项:

参考代码:

public class Main {
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //利用for循环来让每一个三位数都来比较一次,当然了通过一个写好的得知,最低也是192,所以从192开始遍历,末尾也是981;
        for (int i = 192; i <= 981; i++) {
            //声明变量
            int a=0;
            int b=1;
            //题目给的1: 2:3的关系
            int i2=i*2;
            int i3=i*3;
            //将他们转化为字符串形式
            String string=String.valueOf(i)+String.valueOf(i2)+String.valueOf(i3);
            //看string。lenght有又没有9位数因为是123456789这几个数字拆分组合的
            if(string.length()==9){
                //把string的值拆分,然后相加,因为1+2+3+4+5+6+7+8+9=45的所以要利用CharAt()方法,
                                          //而CharAt()方法必须要for循环来控制下表
                for (int j = 0; j < string.length(); j++) {
                    //利用1+2+3+4+5+6+7+8+9=45来判断是不是123456789分解出来的数
                    a+=Integer.parseInt(String.valueOf(string.charAt(j)));
                    //把1*2*3*4*5*6*7*8*9=362880
                    b*=Integer.parseInt(String.valueOf(string.charAt(j)));
                }
                //通过上面那二个就可以判断是不是123456789分解出来的数,如果是就输出,不是就跳过
                if(a==45 && b==362880){
                    System.out.println(i+" "+i2+" "+i3);
                }
            }
        }
    }
}


点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论