题目描述:

  吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,

而这对数字各包含乘积的一半位数的数字,其中最初的数字中可以

选取的数字可以任意排序,以两个0结尾的数字是不允许的,例如,下

面的数字都是吸血鬼数字:

1260=21*60

1827=21*87

2187=27*81

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

 package chapter3_Ex10;

 public class Vampire {

     public static void main(String[] args){
int[] startDigit=new int[4];
int[] productDigit=new int[4];
for(int num1=10;num1<100;++num1){
for(int num2=num1;num2<100;++num2){
if((num1*num2)%9 != (num1+num2)%9)
continue;
int product=num1*num2;
startDigit[0]=num1/10;
startDigit[1]=num1%10;
startDigit[2]=num2/10;
startDigit[3]=num2%10;
productDigit[0]=product/1000;
productDigit[1]=product%1000/100;
productDigit[2]=product%1000%100/10;
productDigit[3]=product%1000%100%10;
int count=0;
for(int i=0;i<4;++i){
for(int j=0;j<4;j++){
if(startDigit[i]==productDigit[j]){
++count;
startDigit[i]=-1;
productDigit[j]=-2; }
}
}
if(count==4){
System.out.println(num1+" * "+num2+" = "+product);
}
}
}
}
}

运行结果:

  aaarticlea/png;base64,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" alt="" width="442" height="157" />

Java学习-练习1的更多相关文章

  1. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  2. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  3. 分享篇——我的Java学习路线

    虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...

  4. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  5. Java学习心得之 HttpClient的GET和POST请求

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 HttpClient的GET和POST请求 1. 前言2. GET请求3 ...

  6. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  7. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  8. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  9. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  10. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

随机推荐

  1. js中一些常用的基本函数

    如何使用jquery刷新当前页面下面介绍全页面刷新方法:有时候可能会用到window.location.reload()刷新当前页面.parent.location.reload()刷新父亲对象(用于 ...

  2. DataSet 中的数据排序 及 DataRow装成DataTable

    1.DataSet 中的数据排序 DataSet ds = new DataSet(); // 获取当前排口的数据 ds = _xiaobill.GetHistoryData(yinZiBianm, ...

  3. Can't create a new thread (errno 11); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug

    解决方案: http://www.javatang.com/archives/2013/06/19/2701909.html

  4. "NO 3D support is available from the host"

    https://forums.opensuse.org/showthread.php/494522-No-3d-Support-or-graphics-accelleration http://ask ...

  5. 关键路径(CriticalPath)算法

    #include <stdio.h> #include <stdlib.h> #include <malloc.h> #define MAXVEX 30 //最大顶 ...

  6. 安装android studio时,解决unable to access android sdk add-on list

    1.打开时提示如下错误. 2.在安装路径下找到idea.properties文件,用记事本打开,添加disable.android.first.run=true,保存即可. 3.再次打开Android ...

  7. C#中MessageBox用法总结

    我们在程序中经常会用到MessageBox. MessageBox.Show()共有21中重载方法.现将其常见用法总结如下: 1.MessageBox.Show("Hello~~~~&quo ...

  8. c++冒泡排序的模板函数设计

    说明 由于课程设计需要,特编写本程序.本程序首先定义了一个冒泡程序的模板函数,然后在main()函数中定义了两个不同类型的数组,调用模板函数对其进行排序.(注意,本程序是在linux下编写,但是直接拷 ...

  9. 畅通project(杭电1863)

    畅通project Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  10. 关于offsetTop offsetHeight clientHeight scrollHeight scrollTop的区别研究

    我是以chrome浏览器做的研究. 先看一段代码: <script> window.addEventListener('DOMContentLoaded',function(){ var ...