POJ1028的Java代码
时间: 2024-10-30 16:02:37 浏览: 31
POJ 1028是一个叫做"Happy Number"的问题,它要求判断一个整数是否是一个“快乐数”。快乐数是指一个正整数从最初指定开始,按照一定的规则不断迭代计算,最终会达到1为止。
下面是一个简单的Java代码示例,用于解决这个问题:
```java
import java.util.Scanner;
public class HappyNumber {
private static int[] memory = new int[10000];
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个正整数:");
int num = scanner.nextInt();
if (isHappy(num)) {
System.out.println(num + " 是一个快乐数!");
} else {
System.out.println(num + " 不是一个快乐数!");
}
}
// 判断一个数字是否是快乐数
private static boolean isHappy(int n) {
if (n == 1 || memory[n] != 0) return n == 1;
memory[n] = 1; // 记录已访问过的数字
int sum = 0;
while (n != 1) {
sum = squareSum(sum);
if (memory[sum] != 0) return false; // 如果遇到重复,不是快乐数
memory[sum] = 1; // 更新记忆数组
n = sum;
}
return true;
}
// 计算每个数的平方和
private static int squareSum(int n) {
return n * n;
}
}
```
在这个代码中,`isHappy`函数通过不断将数字的各个位相加并取平方直到得到1或者循环回到已经访问过的数,判断它是否是快乐数。`squareSum`函数用于计算输入数字的平方。
阅读全文