《java编程思想》第四章练习10找出所有四位数的吸血鬼数

时间:2023-02-22 19:38:22

题目描述:吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不允许的,例如下列数字都是吸血鬼数字

1260=21*60;

1827=21*87;

2187=27*81;

写一个程序,找出4位数的所有吸血鬼数字

	public void getVampireNum(){
		for(int i=11;i<100;i++){
			for(int j=i+1;j<100;j++){
				int mul=i*j;
				if(mul>=1000&&mul<=9999&&(mul%100)!=0){ //四位数且后两位不为0
					/*
					  char[] mulChar=(mul+"").toCharArray();个人感觉转化为字符数组比较好
					  char[] numChar=(i+""+j).toCharArray();
					 */
					String[] mulStr=(mul+"").split("");//将乘积转换为字符串数组
					String[] numStr=(String.valueOf(i)+String.valueOf(j)).split("");//将乘数拼在一起转换为字符串数组
					Arrays.sort(mulStr);//将字符串数组升序排序
					Arrays.sort(numStr);
					if(Arrays.equals(mulStr, numStr)){  //使用Arrays的静态方法equals判断数组包含元素是否相等
						System.out.println(i+"*"+j+"="+mul);
					}
				}
				
			}
		}
	}