四位吸血鬼数字

来源:互联网 发布:教务网络管理系统 编辑:程序博客网 时间:2024/04/27 18:47
import java.util.Arrays;/* * 四位吸血鬼数字 */public class Ex10_4 {public static void main(String[] args) {long start = System.currentTimeMillis();int k = 1;        for(int i = 1; i < 100; i++){            for(int j = i + 1; j < 100; j++){                //比较两个二位数合在一起与它们相乘后的结果是否相等                if(i * j > 1000){                    String a = i + "" + j;                    String b = i * j + "";                    if(equal(a, b)) {                        System.out.println("第" + k + "组:" + i + " * " + j + " = " + (i * j));                        k++;                    }                }            }        }        long end = System.currentTimeMillis();        System.out.println("程序共执行了" + (end - start) + "ms.");    }     //判断两个字符串包含的数字是否一致    private static boolean equal(String a, String b) {        char[] as = a.toCharArray();        char[] bs = b.toCharArray();        Arrays.sort(as); //排序        Arrays.sort(bs); //排序        if(Arrays.equals(as, bs))            return true;              return false;    }}

输出为

第1组:15 * 93 = 1395
第2组:21 * 60 = 1260
第3组:21 * 87 = 1827
第4组:27 * 81 = 2187
第5组:30 * 51 = 1530
第6组:35 * 41 = 1435
第7组:80 * 86 = 6880
程序共执行了13ms.

下面这个代码

import java.util.*;public class Test{    public static void main(String[] args){int[] st=new int[4];int[] ed=new int[4];        for(int i=11;i<100;i++){    for(int j=(1000/i+1<i?i:1000/i+1);j<100;j++){    int s=i*j;    boolean b=true;    st[0]=i%10;    st[1]=i/10;    st[2]=j%10;    st[3]=j/10;    ed[0]=s%10;    ed[1]=(s/10)%10;    ed[2]=(s/100)%10;    ed[3]=s/1000;    Arrays.sort(st);    Arrays.sort(ed);    for(int k=0;k<4;k++){    if(st[k]!=ed[k]){    b=false;    break;    }}if(b) System.out.println(i*j+"="+i+"*"+j);    }    }    }}


0 0
原创粉丝点击