吸血鬼數字

2021-06-20 14:16:25 字數 1099 閱讀 1631

吸血鬼數字指的是位數為偶數的數字,可以由一對數字相乘而得到,而這對數字則各包含乘積一般位數的數字,其中從最初的數字中選取的數字可以任意排序。以兩個0結尾的數字是不允許的,例如下面的吸血鬼數字:

1260 = 21 x 60

1827 = 21 x 87

2187 = 27 x 81

下面的演算法,是找出4位數的所有吸血鬼數字。

我們假設乙個吸血鬼數字 value = 1000a+100b+10c+d,兩個乘數為

1.x = 10a+b,y=10c+d,則value - x -y=990a+99b=99(10a+b);

2.x = 10a+c,y=10b+d,則value - x -y=990a+90b+9c=9(110a+10b+c);

3.x = 10a+d,y=10b+c,則value - x -y=990a+90b+9c=9(10a+b+c);

可以看出四位數的吸血鬼數字滿足條件:(value - x -y)%9=0

所以整個演算法如下:

public class example

r1[0] = x / 10;

r1[1] = x % 10;

r1[2] = y / 10;

r1[3] = y % 10;

r2[0] = result / 1000;

r2[1] = (result % 1000) / 100;

r2[2] = ((result % 1000) % 100) / 10;

r2[3] = ((result % 1000) % 100) % 10;

arrays.sort(r1);

arrays.sort(r2);

if (r1[0] == r2[0] && r1[1] == r2[1] && r1[2] == r2[2]

&& r1[3] == r2[3]) }

} }}

得到的結果為:

1395=15*93

1260=21*60

1827=21*87

2187=27*81

1530=30*51

1435=35*41

6880=80*86

吸血鬼數字

吸血鬼數字是指位數為偶數的數字,可以由一對數字相乘而得到,而這對數字各包含乘積的一半位數的數字,其中從最初的數字中選取的數字可以任意排序。以兩個0結尾的數字是不允許的,例如,下列數字都是 吸血鬼 數字 1260 21 60 1827 21 87 2187 27 81 1994年柯利弗德 皮寇弗在us...

吸血鬼數字

關於吸血鬼數 寫道若 合成數 v 有偶數個位n 且是 n 2 個位的正整數 x 和 y 的積,而且 x 和 y 不是同時以0為個位數,組成 x 和 y 的數字,剛好就是 v 的數字,那麼 v 就是 吸血鬼數 vampire number 而 x 和 y 則稱為 尖牙 例如1260是吸血鬼數,21和6...

吸血鬼數字

題目 吸血鬼數字是指位數為偶數的數字,可以由一對數字相乘而得到,而這對數字各包含乘積的一半位數的數字,其中從最初的數字中選取的數字可以任意排序。以兩個0結尾的數字是不被允許的,例如,下列數字都是 吸血鬼 數字 1260 21 60 1827 21 87 2187 27 81 寫乙個程式,找出4位數的...