四位数中吸血鬼数的查找

吸血鬼数

吸血鬼数是指位数为偶数的数字,可以有一对数字相乘得到,这一对数字组成和该数字组成一致,即包含相同的数字。

思路分析

将需要判断的四位数字分解为千,百,十,各位,然后列出所有的这四个数字的组合,为4×3×2×1=24,然后没一个组合去判断前两位组成十位数与后两位组成十位数相乘结果是否等于原数字。

代码实现

public class Test {
public static void main(String[] args){

    for(int i = 1001;i<10000;i++){
        if(i%100==0){
            continue;
        }
        if(suckBlood(i)){
            print(i+"");
        }
    }

}

static boolean suckBlood(int i){
    int[] array = new int[4];
    int count = 0;
    array[0] = i/1000;
    array[1] = i%1000/100;
    array[2] = i%100/10;
    array[3] = i%10;

    for(int j=0;j<4;j++){
        for(int k=0;k<4;k++){
            if(k==j)
                continue;
            for(int h=0;h<4;h++){
                if(h==k || h==j)
                    continue;
                for(int x=0;x<4;x++){
                    if(x==j || x==h || x==k)
                        continue;
                    int num1 = array[j]*10+array[k];
                    int num2 = array[h]*10+array[x];
                    count++;

                    if(num1*num2 == i)
                        {
                            print("suck blood num1: "+ num1 +" num2: "+num2);
                            return true;
                        }
                }
            }
        }
    }

    return false;
}

}

    原文作者:cg_csdn
    原文地址: https://blog.csdn.net/cg_csdn/article/details/72845341
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞