比如25的平方是625,低位部分是25,因此25是一个守形数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38262266/article/details/88093577

题目描述

守形数是这样一种整数,它的平方的低位部分等于它本身。 比如25的平方是625,低位部分是25,因此25是一个守形数。 编一个程序,判断N是否为守形数。

输入描述:

输入包括1个整数N,2<=N<100。

输出描述:

可能有多组测试数据,对于每组数据,
输出"Yes!”表示N是守形数。
输出"No!”表示N不是守形数。

示例1

输入

复制

25
4

输出

复制

Yes!
No!
#include<bits/stdc++.h>
using namespace std;

string num2str(int n)
{
    string temp;
    do{
        temp=(char)(n%10+'0')+temp;
        n=n/10;
    }while(n!=0);
    return temp;
}

int main()
{
    int n;
    while(cin>>n)
    {
        int k = n*n;
        string s1 = num2str(n);
        string s2 = num2str(k);
        int len = s1.length();
        int len2 = s2.length();

        int num=0;
        int j=0;
        for(int i=len2-len;i<len2;i++)
        {
            if(s2[i]!=s1[j])
            {
                cout<<"No!"<<endl;
                break;
            }else{
                num++;
            }
            j++;
        }
        if(num==len)
        {
            cout<<"Yes!"<<endl;
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_38262266/article/details/88093577
25
今日推荐