Java求吸血鬼数

news/2024/10/23 9:29:30/

在看《Thinking In Java》,有一题是求4位数的吸血鬼数,这里做个笔记。

首先解释一下吸血鬼数字:吸血鬼数字是指位数为偶数的数字,可由一对数字相乘而得到,这对数字各包含乘积的一半位数的数字,以两个0结尾的数字是不允许的。

 四位数吸血鬼数字示例:1260=21*60,1827=21*87,2187=27*81……

先列出结果:一共7个:1260=21*60,1395=15*93,1435=41*35,1530=51*30,1827=87*21,2187=27*81,6880=86*80。

总的来说,就是求一个  两位数*两位数=四位数,其中四位数的四个数字是那两个两位数中的。

知道这个原理,代码实现就相对简单啦。

  1. import java.util.Arrays;
  2. public class Test10 {
  3.     /**
  4.      * 求4位数的吸血鬼数
  5.      * 思想:将两位数*两位数,然后把四位数的结果的所有数字取出来并排序
  6.      *     与i和j的数字组合排序比较,如果相等则是
  7.      */
  8.     public static void printVampireNumber() {
  9.         int result;
  10.         String[] resultNum = null;
  11.         String[] mulNum = null;
  12.         for(int i=10;i<100;i++) {
  13.             for(int j=i+1;j<100;j++) {//不存在ab*ab=abab,所有可以直接j+1开始
  14.                 result = i*j;
  15.                 if(result<1000 || result>9999) {continue;}
  16.                 //1、将四位数拆分为数组,如1827 变成 [1,8,2,7]
  17.                 resultNum = String.valueOf(result).split("");
  18.                 //对其排序
  19.                 Arrays.sort(resultNum);
  20.                 //2、将i和j组合,并转为数组
  21.                 mulNum = (String.valueOf(i)+String.valueOf(j)).split("");
  22.                 //对其排序
  23.                 Arrays.sort(mulNum);
  24.                 //3、比较大小是否相等
  25.                 if(Arrays.equals(resultNum,mulNum)) {
  26.                     System.out.println(result);
  27.                 }
  28.             }
  29.         }
  30.     }
  31.     public static void main(String args[]) {
  32.         printVampireNumber();
  33.     }
  34. }

 

题目来自:《Java编程思想》


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

相关文章

java--吸血鬼数的判断

首先解释一下吸血鬼数字&#xff1a;吸血鬼数字是指位数为偶数的数字&#xff0c;可由一对数字相乘而得到&#xff0c;这对数字各包含乘积的一半位数的数字&#xff0c;以两个0结尾的数字是不允许的。 四位数吸血鬼数字示例&#xff1a;126021*60&#xff0c;182721*87…

ThinkingInJava_吸血鬼数

package java_001;import java.util.Arrays;/*** Thinking in Java*吸血鬼数字是指位数为偶数的数字&#xff0c;可由一对数字相乘而得到&#xff0c;*这对数字各包含乘积的一半位数的数字&#xff0c;*其中从最初数字选取的数字可以任意排序*以两个0结尾的数字是不允许的。*四…

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) {/…