class M{ public static void main(String[] args) { int count = 0; String[] s_arr,n_arr; for (int i = 10; i < 100; i++) { for (int j = i; j < 100; j++) { int sum = i * j; if(sum > 1000 && sum < 10000 && (sum - i - j) % 9 == 0){ count++; s_arr = String.valueOf(sum).split(""); n_arr = (String.valueOf(i) + String.valueOf(j)).split(""); Arrays.sort(s_arr); Arrays.sort(n_arr); if(Arrays.equals(s_arr,n_arr)){ System.out.println(sum+"="+i+"*"+j); } } } } System.out.println(count); } }
运行结果:
1395=1593
1260=2160
1827=2187
2187=2781
1530=3051
1435=3541
6880=80*86
255
java;gutter:true;
class L{
public static void main(String[] args) {
int count = 0,num = 0;
for (int i = 10; i < 100; i++) {
for (int j = i; j < 100; j++) {
int sum = i * j;
if(sum > 1000 && sum < 10000 && (sum - i - j) % 9 == 0){
count++;
int[] s_arr = new int[4];
int k = 0;
while(sum != 0){
s_arr[k++] = sum % 10;
sum /= 10;
}
int[] n_arr = new int[4];
n_arr[0] = i / 10;
n_arr[1] = i % 10;
n_arr[2] = j / 10;
n_arr[3] = j % 10;
int scount = 0;
for (int l = 0; l < 4; l++) {
for (int m = 0; m < 4; m++) {
num++;
if(s_arr[l] == n_arr[m]){
scount++;
s_arr[l] = -1;
n_arr[m] = -2;
if(scount == 4)
System.out.println(i * j + "=" + i + "*" + j);
}
}
}</p>
<pre><code> }
}
}
System.out.println(count);
System.out.println(num);
}
</code></pre>
<p>}
运行结果:
1395=1593
1260=2160
1827=2187
2187=2781
1530=3051
1435=3541
6880=80*86
255
4080
Original: https://www.cnblogs.com/lirun/p/11476921.html
Author: 李润
Title: java编程思想中求吸血鬼数字的两种写法
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/569081/
转载文章受原作者版权保护。转载请注明原作者出处!