java实现吸血鬼数字
时间: 2024-09-18 08:11:53 浏览: 31
"吸血鬼数"是一个有趣的数学概念,它源于匈牙利数学家Paul Erdős的一道问题。在Java中实现吸血鬼数,通常是指两个正整数,它们相加得到的结果的每一位数码都是这两个数各自数码的和。例如,69 + 96 = 165,因为1+6=7,6+9=15,1+5=6。
以下是一个简单的Java方法,用于判断两个数是否构成吸血鬼数:
```java
public class VampireNumber {
public static boolean isVampire(int num1, int num2) {
String strNum1 = String.valueOf(num1);
String strNum2 = String.valueOf(num2);
int[] digits1 = new int[strNum1.length()];
int[] digits2 = new int[strNum2.length()];
// 将字符串转换为数组,存储每一位数字
for (int i = 0; i < strNum1.length(); i++) {
digits1[i] = strNum1.charAt(i) - '0';
}
for (int i = 0; i < strNum2.length(); i++) {
digits2[i] = strNum2.charAt(i) - '0';
}
// 计算两数之和的每一位并与两个输入数字的相应位比较
int sum = 0;
for (int i = 0; i < Math.max(strNum1.length(), strNum2.length()); i++) {
int digitSum = digits1[i] + digits2[i];
if (i < strNum1.length()) {
sum += digits1[i];
}
if (i < strNum2.length()) {
sum += digits2[i];
}
if (sum / 10 != digitSum) { // 如果当前位的和不是结果的对应位,则不是吸血鬼数
return false;
}
sum %= 10;
}
return true;
}
// 示例:
public static void main(String[] args) {
System.out.println(isVampire(69, 96)); // 输出:true
}
}
```
阅读全文