题目描述:
守形数是这样一种整数,它的平方的低位部分等于它本身。比如25的平方是625,低位部分是25,
因此25是一个守形数。编一个程序,判断N是否为守形数。
输入描述:
输入包括1个整数N,2<=N<100。
输出描述:
可能有多组测试数据,对于每组数据,输出"Yes !"表示N是守形数。
输出"No ! ”表示N不是守形数。
测试用例:
输入:25
4
输出:Yes!
No!
思路:
- 常见的守形数:1,5,6,25等
- 规律:当守形数的平方小于10的时候,守形数的平方-守形数%10==0
当守形数的平方大于1-的时候,守形数的平方-守形数%1000==0
有了这个规律这道题就迎刃而解啦~
代码如下:
import java.util.Scanner;
public class Main {
private static void isProtectedNum(int num){
int mul = num*num;
if (num < 10){
if ((mul-num)%10 == 0){
System.out.println("Yes!");
}else{
System.out.println("No!");
}
}else {
if ((mul-num) %100 == 0){
System.out.println("Yes!");
}else {
System.out.println("No!");
}
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){
int num = scanner.nextInt();
isProtectedNum(num);
}
}
}