首页 > 代码库 > 九度OJ 1183 守形数 (模拟)

九度OJ 1183 守形数 (模拟)

题目1183:守形数

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:2663

解决:1424

题目描述:

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

输入:

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

输出:

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

样例输入:
25
4
样例输出:
Yes!
No!

#include<stdio.h>
#include<string.h>
int N;
char s1[10001];
char s2[10001];
void check()
{
    int flag=0;
    int N2=N*N;
    int i=0;
    while(N)
    {
        s1[i++]="0123456789"[N%10];
        N/=10;
    }
    i=0;
    while(N2)
    {
        s2[i++]="0123456789"[N2%10];
        N2/=10;
    }
    for(int i=0;i<strlen(s1);++i)
    {
        if(s1[i]!=s2[i])
        {
            flag=1;
            break;
        }
    }
    if(flag)
    {
        printf("No!\n");
    }
    else
        printf("Yes!\n");
 
}
int main(int argc, char *argv[])
{
  //  freopen("1183.in", "r", stdin);
    while(~scanf("%d",&N)){
        memset(s1,0,sizeof(s1));
        memset(s2,0,sizeof(s2));
        check();
    }
    return 0;
}
 
/**************************************************************
    Problem: 1183
    User: kirchhoff
    Language: C
    Result: Accepted
    Time:0 ms
    Memory:932 kb
****************************************************************/


九度OJ 1183 守形数 (模拟)