题目描述:

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

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

选取的数字可以任意排序,以两个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. 浅析 JavaScript 的函数节流和去抖

    现代网页的实现上,会有很多交互上的优化,比如常见的 滚动加载 ,输入联想 等等.他们的实现思路很简单,以滚动加载而言,无非就是去是增加一个滚动的事件监听,每次滚动判断当前的元素是否已经滚动到了用户的可 ...

  2. 使用Hashtable和List结合拼json数据

    在做项目的时候,有时候需要向页面返回一个特定的json类型的数据,一般情况下会有下面的方法进行拼接: public String chongzhiList() throws Exception { L ...

  3. USB device & USB controller & USB passthrough

    目录 USB device USB controller Linux 相关命令 Python 相关库 Libvirt USB passthrough 参考资料 近期往 openstack 里倒腾 US ...

  4. USB 传输协议

    Pipe USB的pipe的两端分别指的是USB host端的内存区域,和设备端的endpoint. pipe分为两类,一类是stream pipe, 另一类是message pipe. 两类的主要区 ...

  5. android 自定义AlertDialog(一段)

    java: final AlertDialog dialog = new AlertDialog.Builder(mContext) .create(); dialog.setCancelable(f ...

  6. wireshark 过滤条件汇总

    原文地址:http://blog.const.net.cn/a/9340.htm 一.针对wireshark最常用的自然是针对IP地址的过滤.其中有几种情况: (1)对源地址为192.168.0.1的 ...

  7. jquery获取复选框

    Html代码: <input type="checkbox" name="chekItem" /> checkbox1 <br /> & ...

  8. Truck History(kruskal+prime)

    Truck History Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Tota ...

  9. (转)轻量级数据库 SQLite

    SQLite Expert – Personal Edition SQLite Expert 提供两个版本,分别是个人版和专业版.其中个人版是免费的,提供了大多数基本的管理功能. SQLite Exp ...

  10. asp.net页面与页面之间参数传递

    传值asp文件send.aspx 代码如下 复制代码 <form id="form1" runat="server" action="recei ...