判输出500以内的smith数java代码
时间: 2024-09-15 16:14:16 浏览: 36
Smith数是一种特殊的自然数,它的每个位数字(从右到左)都是其各位数字之和的因数。以下是用Java编写的一个简单函数,用于检查并打印出500范围内的所有Smith数:
```java
public class SmithNumbers {
public static void main(String[] args) {
for (int i = 1; i < 500; i++) {
if (isSmith(i)) {
System.out.println(i);
}
}
}
// 判断是否为Smith数的辅助函数
public static boolean isSmith(int number) {
int sumOfDigits = sumOfDigit(number);
int originalNumber = number;
while (number > 0) {
int digit = number % 10;
number /= 10;
if (digit != sumOfDigits % digit) {
return false;
}
sumOfDigits = sumOfDigit(sumOfDigits);
}
// 如果所有循环都通过了,原始数值和计算得到的值相等,则它是Smith数
return originalNumber == sumOfDigits;
}
// 计算一个整数各位数字之和的函数
private static int sumOfDigit(int num) {
int sum = 0;
while (num > 0) {
sum += num % 10;
num /= 10;
}
return sum;
}
}
```
这个程序会逐个检查1到499的所有整数,如果找到一个满足Smith数条件的数,就打印出来。
阅读全文