1575 - 对称平方数

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

打印所有不超过n(n<256)的,其平方具有对称性质的数。如11*11=121。

题目输入

题目输出

每行一个数,表示对称平方数。

输入/输出样例

输入格式


                        

输出格式


                        

C语言解答

#include<stdio.h>

int main()
{
	long int num;
	int i,j,k;
	int t=10;
	int temp[5];

	for(i=1; i<256; i++)
	{
		num=i*i;
		j=0;
		while(num!=0)
		{
			temp[j]=num%t;
			num=num/10;
			j++;
		}
		for(k=0; k<j; k++)
		{
			if(temp[k]!=temp[j-k-1])
			{
				break;
			}
		}
		if(k==j)
		{
			printf("%ld\n", i*i);
		}
	}
	return 0;
}

C++解答

#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
int main()
{
    int t,x;
    char s[10] ;
    for(int i=1; i<256; i++)
    {
        int j=0;
        x=i*i;
        while(x)
        {
            t=x%10;
            s[j++]=t+48;
            x/=10;
        }
        s[j]='\0';
        if(i*i==atoi(s))
        {
            cout<<i<<endl;
        }
    }
    return 0;
}

Java解答



public class Main {
   public static void main(String[] args) {
	  for (int i = 1; i < 256; i++) {
		  if (is(i)) {
			System.out.println(i);
		  }
	  }
  }
   
   public static boolean is(int n){
	   long result = n*n ;
	   
	   String str = Long.toString(result) ;
	   
	   char[]c = str.toCharArray() ;
	   
	   for (int i = 0; i < c.length/2; i++) {
		 if(c[i]!=c[c.length-1-i]){
			 return false ;
		 }
	   }
	   
	   return true ;
   }
}