输出500以内的smith数java代码简单一点
时间: 2024-09-15 20:14:21 浏览: 29
Java-exercise.rar_Java,Smith数_smith
Smith数是一种特殊的整数,它的各位数字的加权和等于其各位数字的乘积的算术平方根。下面是一个简单的Java程序,用于找出500以内的所有Smith数:
```java
public class SmithNumbers {
public static void main(String[] args) {
for (int i = 1; i < 500; i++) {
int sum = 0;
int product = 1;
// 分解每一位数字并计算乘积
String numString = Integer.toString(i);
for (char digit : numString.toCharArray()) {
product *= Character.getNumericValue(digit);
}
// 检查是否满足Smith数条件
int sqrtProduct = (int) Math.sqrt(product);
if (i == sum && squareRootSum(numString) == sqrtProduct) {
System.out.println("Smith number found: " + i);
}
}
}
// 计算数字字符串各位之和的算术平方根
private static int squareRootSum(String numString) {
int sum = 0;
for (char digit : numString.toCharArray()) {
sum += Character.getNumericValue(digit);
}
return (int) Math.sqrt(sum);
}
}
```
在这个程序中,我们遍历1到499的所有整数,分解每个数为字符数组,然后分别计算数字和乘积。接着,检查数字的算术平方根是否等于各数字相加后的和,并且两者相等即为Smith数。
阅读全文