题目描述:

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

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

选取的数字可以任意排序,以两个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. Git学习04 --分支管理

    每次commit,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而是指向master ...

  2. Delphi 线程Timer (TThreadTimer)

    delphi 自带的Timer控件,使用方便,但它的 OnTimer 事件是在主线程中引发的. 如果在事件中执行较耗时的代码,会引起主界面假死.故实现一个线程的Timer就有必要了. TThreadT ...

  3. 《how to design programs》9.3处理任意长度的表

    假定一个玩具商店要把货物库存清单存放在计算机之中,这样,店里的员工就可以快速判断商店里是否还有某种玩具存货.简言之,商店需要一个能够检查库存是否含有玩具'doll 的函数contains-doll?, ...

  4. 学习linux之用户-文件-权限操作

    添加用户组 添加 gropuadd 用户组名 修改 groupmod 用户组名 删除 groupdel 用户组名 添加用户 添加 useradd 用户名 设密码 passwd 密码 删除 userde ...

  5. Chapter 1. Hello, Perl/Tk

    Chapter 1. Hello, Perl/Tk 内容: Perl/Tk Concepts Some Perl/Tk History Getting Started with Perl/Tk Hel ...

  6. CGFW时装发布及活动整体一览表

    CGFW时装发布及活动整体一览表 CGFW时装发布及活动整体一览表

  7. H264 编码详解

    H264 编码详解(收集转载) (1)       x264_param_default( x264_param_t *param ) 作用: 对编码器进行参数设定 cqm:量化表相关信息 csp: ...

  8. 我是如何开发一个连锁企业的信息系统的,NO.1

    我是如何开发一个连锁企业的信息系统的,NO.1 连锁企业的信息系统的开发,一半要经历系统分析.系统设计.系统实施.系统评价和系统维护等五个阶段, 而在每个实施阶段中又具体划分出许多阶段性目标和实施步骤 ...

  9. web api (.NET 4.5)

    摘自http://blog.csdn.net/fangxing80/article/details/7318289 在刚刚发布的 ASP.NET MVC 4 中,有一个值得注意的新特性——Web Ap ...

  10. 浏览器操作html页面的width和height

    原文:http://www.cnblogs.com/dengshunping/archive/2009/06/15/1503803.html IE中: document.body.clientWidt ...