/**
* 守形数是这样一种整数,它的平方的低位部分等于它本身。
* 比如25的平方是625,低位部分是25,因此25是一个守形数。
* 编一个程序,判断N是否为守形数。
* 输入描述:
* 输入包括1个整数N,2<=N<100。
* 输出描述:
* 可能有多组测试数据,对于每组数据,
* 输出
* "Yes!”表示N是守形数。
* 输出
* "No!”表示N不是守形数。
* 示例1:
* 输入
* 25
* 4
* 输出
* Yes!
* No!
*/
解决方法:
import java.util.Scanner;
/**
* @author abaka
* @date 2019/7/6 16:04
*/
public class Shouxingshu {
/**
* 思路:
* 1.取得平方数和原数字
*
* 2.将两种数转换为字符串
*
* 3.截取平方数中的低位和原数字比较
* @param args
*/
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()){
int n = in.nextInt();
int ret = n * n;
String str1 = String.valueOf(n);
String str2 = String.valueOf(ret);
String s = str2.substring(str2.length() - str1.length(),str2.length());
if (s.equals(str1))
System.out.println("Yes!");
else
System.out.println("No!");
}
}
}