小白学《Java编程思想》之吸血鬼数字

今天在看编程思想的时候,看到一道很有意思的题,然后自己看了看,又学着网上的方法
把代码贴出来给大家看看

题目大意是:

吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。
以两个0结尾的数字是不允许的,例如,下列数字都是“吸血鬼”数字: 1260 = 21 * 60  1827 = 21 * 87  2187
= 27 * 81

import java.util.Arrays;

public  class test2020926 {

    public static void main(String[] args) {
        //先定义两个Strng类型
        String[] s1,s2;
        int sum=0;//用来计算组数
        //直接暴力枚举,调用两次循环
        for(int i=10;i<100;i++){
            for(int j=i+1;j<100;j++){
                //这里加一主要还是因为i和j比不可能重复,减少枚举次数
                int result=i*j;//记录暂时结果,再进行判断
                if(result<1000||result>9999)
                    continue;
                    //也就是不在范围里的直接排除
                //直到找到一个,一字符串的方式对他进行拆分,String.valueofhe split ,也就是转化为字符类型,然后分隔开,依次存入到数组中
                s1=String.valueOf(result).split("");
                s2=(String.valueOf(i)+String.valueOf(j)).split("");
                //这里就比较绝了,将这两组数组先进行排序,然后再判断是否相投
                java.util.Arrays.sort(s1);
                java.util.Arrays.sort(s2);
                if(java.util.Arrays.equals(s1,s2)){
                    //如果两个相同的话
                    sum++;//总数加一
                    //再统计一下
                    System.out.println("第"+sum+"组"+"i是"+i+"j是"+j+"结果是"+result);
                }

            }
        }
        //这里再说一下
        System.out.println("一共找到"+sum+"组");
    }
}

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值