徐稳权


私信TA

用户名:18671468805

访问量:10791

签 名:

等  级
排  名 566
经  验 4342
参赛次数 0
文章发表 58
年  龄 0
在职情况 学生
学  校 湖北生物科技职业学院
专  业

  自我简介:

解题思路:这个题,主要是理解意思,分为二步来做,第一步:判断数是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分

2 人评分

  评论区

  • «
  • »