题解 | 守形数
守形数
https://www.nowcoder.com/practice/99e403f8342b4d0e82f1c1395ba62d7b
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<iostream> #include<vector> using namespace std; //守形数是这样一种整数,它的平方的低位部分等于它本身。 //比如25的平方是625,低位部分是25,因此25是一个守形数。 编一个程序,判断N是否为守形数。 //输入包括1个整数N,2<=N<100。 //可能有多组测试数据,对于每组数据, 输出"Yes!”表示N是守形数。 输出"No!”表示N不是守形数。 int main() { int n; while (scanf("%d",&n)!=EOF) { int sq = n * n; vector<int> arr; int k = 0; while (sq > 10) { arr.push_back(sq % 10); sq = sq / 10; } int num = arr.size(); int myNum = 0; for (int i = num - 1; i >= 0; i--) { myNum = myNum * 10 + arr[i]; } if (n == myNum) { printf("Yes!\n"); } else { printf("No!\n"); } } return 0; }