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;

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值