【java】吸血鬼数字

来源:互联网 发布:淘宝订单自动关闭 编辑:程序博客网 时间:2024/05/20 03:43

题目:Java编程思想 p75 练习10


import java.util.Arrays;import static java.lang.Character.getNumericValue;public class Test{    public static void main(String args[]) {        for(int i=10;i<100;i++){            for(int j=10;j<100;j++){                int x = i*j;                if(x>=1000&&x<9999){                    Judge(i,j,x);                }            }        }    }    private static void Judge(int i,int j,int x){        String right = ""+i+j;        String left = ""+x;        int[] a = TransferToArray(right);        int[] b = TransferToArray(left);        Arrays.sort(a);        Arrays.sort(b);        //比较两个数组是否相同  Arrays.equals        if(Arrays.equals(a, b)){            System.out.println("吸血鬼数字:"+x+"="+i+"*"+j);        }    }    private static int[] TransferToArray(String str){        int[] a = new int[4];        for(int i=0;i<str.length();i++){            //直接强转的话得到是char的ASCII,强转后使用静态方法getNumericValue            a[i] = getNumericValue((int) str.charAt(i));        }        return a;    }}

通过判断两数乘积范围可优化这里:(本文未更改)
if(x>=1000&&x<9999){


结果:

吸血鬼数字:1395=15*93吸血鬼数字:1260=21*60吸血鬼数字:1827=21*87吸血鬼数字:2187=27*81吸血鬼数字:1530=30*51吸血鬼数字:1435=35*41吸血鬼数字:1435=41*35吸血鬼数字:1530=51*30吸血鬼数字:1260=60*21吸血鬼数字:6880=80*86吸血鬼数字:2187=81*27吸血鬼数字:6880=86*80吸血鬼数字:1827=87*21吸血鬼数字:1395=93*15



原创粉丝点击