zoukankan      html  css  js  c++  java
  • Java:thinging in java p154 exercise 10

    题目

    A vampire number has an even number of digits and is formed by multiplying a pair of numbers containing half the number of digits of the result. The digits are taken from the original number in any order. Pairs of trailing zeroes are not allowed. Examples include: 1260 = 21 * 60, 1827 = 21 * 87, 2187 = 27 * 81. Write a program that finds all the 4-digit vampire numbers. (Suggested by Dan Forhan.)

     1 public class VampireNumber {
     2 
     3     public static void main(String[] args) {
     4         int a = 0, b = 0, c = 0, d = 0;
     5         int[] m = new int[12];
     6         int[] n = new int[12];
     7 
     8         for (int i = 1000; i < 9999; i++) {
     9             // 分成4个数
    10             a = i / 1000;
    11             b = (i - a * 1000) / 100;
    12             c = (i - a * 1000 - b * 100) / 10;
    13             d = i % 10;
    14 
    15             m[0] = a * 10 + b;
    16             n[0] = c * 10 + d;
    17 
    18             m[1] = a * 10 + b;
    19             n[1] = d * 10 + c;
    20 
    21             m[2] = a * 10 + c;
    22             n[2] = b * 10 + d;
    23 
    24             m[3] = a * 10 + c;
    25             n[3] = d * 10 + b;
    26 
    27             m[4] = a * 10 + d;
    28             n[4] = b * 10 + c;
    29 
    30             m[5] = a * 10 + d;
    31             n[5] = c * 10 + b;
    32 
    33             m[6] = b * 10 + a;
    34             n[6] = c * 10 + d;
    35 
    36             m[7] = b * 10 + a;
    37             n[7] = d * 10 + c;
    38 
    39             m[8] = b * 10 + c;
    40             n[8] = d * 10 + a;
    41 
    42             m[9] = b * 10 + d;
    43             n[9] = c * 10 + a;
    44 
    45             m[10] = c * 10 + a;
    46             n[10] = d * 10 + b;
    47 
    48             m[11] = c * 10 + b;
    49             n[11] = d * 10 + a;
    50             for (int j = 0; j < 12; j++) {
    51                 if (i == m[j] * n[j]) {
    52                     System.out.println(i + " = " + m[j] + " * " + n[j]);
    53                 }
    54             }
    55 
    56         }
    57     }
    58 }

    输出

    1 1260 = 21 * 60
    2 1395 = 15 * 93
    3 1435 = 41 * 35
    4 1530 = 51 * 30
    5 1827 = 87 * 21
    6 2187 = 27 * 81
    7 6880 = 86 * 80
    8 6880 = 80 * 86
  • 相关阅读:
    【NIO】IO与NIO的区别
    【在线工具】java开发常用在线工具
    【JVM】符号引用和直接引用
    【多线程】公平锁/非公平锁、乐观锁/悲观锁
    【Jenkins、sonar】
    开源软件记录
    Git Flow
    CF1324A Yet Another Tetris Problem 题解
    洛谷 P1199 三国游戏 题解
    CF33C Wonderful Randomized Sum 题解
  • 原文地址:https://www.cnblogs.com/taoxiuxia/p/4434527.html
Copyright © 2011-2022 走看看