1. 程式人生 > >C語言:迴文平方數

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;

}

注意判斷是否為平方數的方法。