题目描述:

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

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

选取的数字可以任意排序,以两个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. UVA 12563 Jin Ge Jin Qu hao

    dp-背包 开始用普通dp写了一发发现没法确定最大时间... 后来看到大牛机智的写法,嗯...dp表示当前状态能否成立:然后从条件最好的状态开始遍历,直到这个状态成立然后退出遍历. 具体的看代码吧.. ...

  2. Oracle EBS-SQL (PO-13):检查报价单.sql

    select          pha.segment1                     报价单号     -- ,pha.end_date     -- ,decode(pha.status ...

  3. Mysql ORM工具--MicrobeORM.Mysql开源咯

    MicrobeORM.Mysql 补充:为啥批批量比官方的ADO.NET还快,原因是这俩货 System.EnterpriseServices.dllSystem.EnterpriseServices ...

  4. Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等

    继续并发专题~ FutureTask 有点类似Runnable,都可以通过Thread来启动,不过FutureTask可以返回执行完毕的数据,并且FutureTask的get方法支持阻塞. 由于:Fu ...

  5. 原生应用native、Web应用、混合应用hybrid:3者的优缺点解析

    最近原生应用.Web应用.混合应用的名字让我们听得比较熟悉了,现在我们就通过评析各种应用的优缺点来更进一步看看这三者的区别. 一. 原生应用: 你使用过微软PowerPoint 或者 Word吧?这些 ...

  6. inet address example(socket)

    package com.opensource.socket; import java.net.Inet4Address; import java.net.Inet6Address; import ja ...

  7. Android的读写文件权限

    设置文件生成的权限: public static boolean saveInfo( Context context, String userName, String userPass, int mo ...

  8. bash 学习笔记(一)

    尽量使用printf而不要用echo(echo再不同情况下语义不同) 整数%d,小数后6位%f,科学计数法 %e,16进制 %x 宽度限制 %8s %-15s 正数朝右对齐 负数朝左对齐:%04d\n ...

  9. c#中 HttpContext作用(一)【转】

    HttpContext 主要作用是要获得你客户端向服务端请求提交的相关信息  HttpContext 类:封装有关个别 HTTP 请求的所有 HTTP  特定的信息.也有人叫上下文信息. 1.生存周期 ...

  10. java分页数据导出excel

    /** * 订单导出(用于统计利润) * @return */ public String orderExport() throws IOException{ if (queryOrderList_c ...