C语言:回文平方数

题目描述

回文数是指从左向右念和从右向左念都一样的数。如12321就是一个典型的回文数。

如果给定一个数,如果其是回文数并且是某个正整数的平方,则称其为回文平方数。
比如121,它既是回文数并且是11的平方,所以121是回文平方数。

输入
输入包括多组数据(少于30000组)。
每组数据包括一行,每行仅一个正整数n(1<=n<231)。若n是0,则表示结束输入(不需要处理)。

输出
对于每一行的正整数n, 输出一行。
如果n是回文平方数,输出"YES", 否则输出"NO"。

样例输入
111
121
122
0

样例输出
NO
YES
NO

#include <stdio.h>
#include <math.h>

int fuc(int x)

{

	int m,newed=0,t=0;

	m=x;

	do

	{

		newed=newed*10+m%10;

		m/=10;

	}while(m>0);

	if(x==newed) t=1;

	return t;

}

int main()

{

	int n;

	while(scanf("%d",&n)!=EOF&&n!=0)

	{
        if(fuc(n)&&sqrt(n)==(int)sqrt(n)) printf("YES\n");
        else printf("NO\n");
	}
	return 0;

}

注意判断是否为平方数的方法。

猜你喜欢

转载自blog.csdn.net/weixin_43540427/article/details/84980445
今日推荐