ThinkingInJava_吸血鬼数

news/2024/10/23 9:22:50/
package java_001;import java.util.Arrays;/*** Thinking in Java*吸血鬼数字是指位数为偶数的数字,可由一对数字相乘而得到,*这对数字各包含乘积的一半位数的数字,*其中从最初数字选取的数字可以任意排序*以两个0结尾的数字是不允许的。*四位数吸血鬼数字示例:1260=21*60,1827=21*87,2187=27*81……*编写程序列出所有的4位的吸血鬼数**列出结果:一共7个:1260=21*60,1395=15*93,*1435=41*35,1530=51*30,1827=87*21,*2187=27*81,6880=86*80*/public class Xi {public static int[] toIntArray(int num1, int num2) {//两个二位数转数组int[] a = new int[4];a[0] = num1 / 10;a[1] = num1 % 10;a[2] = num2 / 10;a[3] = num2 % 10;return a;}public static int[] toIntArray(int num) {//四位数转数组int[] a = new int[4];a[3] = num % 10;a[2] = num % 100 / 10;a[1] = num % 1000 / 100;a[0] = num / 1000;return a;}public static void testToIntArray(int i,int j,int xi){int[] a = toIntArray(i, j);int[] b = toIntArray(xi);System.out.println("1:" + Arrays.toString(a));System.out.println("2:" + Arrays.toString(b));}public static boolean notInList(int key,int[] list,int sum){for (int k = 0; k < sum; k++) {if (list[k] == key) {return false;}}return true;}public static void main(String[] args) {///*int[] list=new int[10];int sum=0;for(int i=11;i<100;i++){for(int j=10;j<100;j++){int xi=i*j;if(xi<999||xi>10000)continue;int[] a=toIntArray(i,j);int[] b=toIntArray(xi);    Arrays.sort(a);Arrays.sort(b); //将a,b数组元素排序if(Arrays.equals(a, b) && notInList(xi, list, sum)){//判断a,b数组是否相等,并且吸血鬼数不在list内(去重)list[sum]=xi;sum++;  System.out.print(xi+",");}}}System.out.println("\nsum="+sum);//*/}
}


http://www.ppmy.cn/news/889230.html

相关文章

java编程找出吸血鬼数字,Java 找到四位数的所有吸血鬼数字 基础代码实例

Java 找出四位数的所有吸血鬼数字 基础代码实例 /** * 找出四位数的所有吸血鬼数字 * 吸血鬼数字是指位数为偶数的数字&#xff0c;可以由一对数字相乘而得到&#xff0c;而这对数字各包含乘积的一半位数的数字&#xff0c;其中从最初的数字中选取的数字可以任意排序. * 以两个…

Thinking in Java之吸血鬼数字

今天学习了Java的流程控制的内容&#xff0c;基本与C语言一样&#xff0c;只不过是Java多了foreach语句的一种用法&#xff0c;相对于C语言来说方便了很多。看了最后一道习题&#xff0c;是关于吸血鬼数字的&#xff0c;比较感兴趣于是就写了代码。但是我这个属于暴力求解&…

java吸血鬼数字_[求助]吸血鬼数字

[求助]吸血鬼数字 public class xixuegui { public static void main (String[] args) { int i,j,k,a,b,c,d,n,m; for(i1001;i<9999;i){ ai/1000; b(i-a*1000)/100; c(i-a*1000-b*100)/10; di-a*1000-b*100-c*10; for(j1;j<10;j){ for(k0;k<10;k){ if(i(j*1000)(k*100…

四位吸血鬼数

四位吸血鬼数算法 题目来自《Thinking in Java》第四版&#xff0c;第四章最后一道练习题。 下面是我的代码&#xff1a; public static void main(String args[]) { long t1 System.currentTimeMillis();int number 0;int[] combo new int[4];left:for(int left11;left&…

记一次简单高效的吸血鬼算法

记一次简单高效的吸血鬼算法 什么是吸血鬼数字获取四位数的吸血鬼数字的代码实现输出结果代码分析 什么是吸血鬼数字 吸血鬼数字是指位数为偶数的数字&#xff0c;可以由一对数字相乘而得到&#xff0c;而这对数字各包含乘积的一半位数的数字&#xff0c;其中从最初的数字中选…

Java 实现四位数的吸血鬼算法

public class Main {public static void main(String[] args) {int[] startDigit new int[4];int[] productDigit new int[4];// 可以判断: 两个数只有两位数字,num1和num2代表这两个数for (int num1 10; num1 < 99; num1) {for (int num2 num1; num2 < 99; num2) {/…

java吸血鬼_4位吸血鬼数字的java实现思路与实例讲解

这个问题来源于java编程思想一书&#xff0c;所谓“吸血鬼数字”就是指位数为偶数的数字&#xff0c;可以由一对数字相乘而得到&#xff0c;而这对数字各包含乘积的一半位数字&#xff0c;其中从偶数位数字中选取的数字可以任意排列。例如&#xff1a; 126021*60&#xff0c;18…

java 吸血鬼数字(四位数)

Java 编程思想 练习10. 吸血鬼数字 题目的具体内容在注释里面。 虽然这个题目所属的区块是switch关键字&#xff0c; 但是不知道如何运用。 下面是代码&#xff0c;没算法&#xff0c;brute force。 /** 吸血鬼数字 位数为偶数的数字&#xff0c;可以由一对数字相乘得到&am…