Java用字符串判断一个正整数是否为自守数
时间: 2023-02-06 09:55:47 浏览: 218
自守数是指一个数的平方的末尾几位等于该数本身的数。
例如,25是一个自守数,因为25^2=625,末尾两位数字是25。
要用字符串判断一个数是否为自守数,可以这样做:
1. 先将数字转换为字符串类型。
2. 计算出该数的平方,再将平方的结果转换为字符串类型。
3. 取出平方字符串的末几位数字(与原数字字符串长度相同),与原数字字符串比较是否相等。
例如:
```
int num = 25;
String numStr = String.valueOf(num); // 将数字转换为字符串
long square = (long)num * num; // 计算平方
String squareStr = String.valueOf(square); // 将平方结果转换为字符串
// 取出平方字符串的末几位数字
String lastDigits = squareStr.substring(squareStr.length() - numStr.length());
// 判断是否为自守数
if (numStr.equals(lastDigits)) {
System.out.println(num + "是自守数");
} else {
System.out.println(num + "不是自守数");
}
```
上面的代码会输出:25是自守数
注意:在计算平方时,要先将数字转换为long类型,因为int类型的数字平方可能会超出int类型的取值范围。
相关问题
Java用字符串判断1000000以内的正整数是否为自守数
在 Java 中,可以使用以下代码来判断1000000以内的正整数是否为自守数:
```
public static boolean isSelfDefendingNumber(int num) {
// 将数字转换为字符串
String str = String.valueOf(num);
// 遍历字符串中的每个字符
for (char c : str.toCharArray()) {
// 将字符转换为数字
int digit = c - '0';
// 如果数字在字符串中出现的次数不等于数字本身,则不是自守数
if (str.length() - str.replace(String.valueOf(digit), "").length() != digit) {
return false;
}
}
return true;
}
```
在这段代码中,我们首先将数字转换为字符串,然后遍历字符串中的每个字符。对于每个字符,我们将它转换为数字,并使用 String 类的 replace() 方法统计在字符串中出现的次数。如果数字在字符串中出现的次数不等于数字本身,则该数字不是自守数。
java 判断输入的字符串是一个正整数
你可以使用以下代码来判断输入的字符串是否是一个正整数:
```java
import java.util.Scanner;
public class PositiveIntegerCheck {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String input = scanner.nextLine();
boolean isPositiveInteger = true;
for (int i = 0; i < input.length(); i++) {
if (!Character.isDigit(input.charAt(i))) {
isPositiveInteger = false;
break;
}
}
if (isPositiveInteger && !input.isEmpty()) {
int num = Integer.parseInt(input);
if (num <= 0) {
isPositiveInteger = false;
}
} else {
isPositiveInteger = false;
}
if (isPositiveInteger) {
System.out.println("输入是一个正整数");
} else {
System.out.println("输入不是正整数");
}
}
}
```
在这个示例中,我们首先使用 Scanner 类获取用户输入的字符串。然后,我们逐个检查字符串中的字符是否为数字。如果有任何一个字符不是数字,或者字符串为空,则不是正整数。接着,我们将字符串转换成整数,并判断该整数是否大于 0。如果转换后的整数小于等于 0,则也不是正整数。
最后,根据判断结果输出相应的提示信息。
需要注意的是,这段代码中假设输入的字符串只包含数字字符。如果需要考虑其他情况,比如允许输入带有空格或其他特殊字符的字符串,请根据具体需求进行适当的修改。
阅读全文