对称平方数

题目

题目描述:
打印所有不超过n(n<256)的,其平方具有对称性质的数。
如11*11=121
输入:
无任何输入数据
输出:
输出具有题目要求的性质的数。如果输出数据不止一组,各组数据之间以回车隔开。
样例输入:
样例输出:


思路

  • 比较数组的数据是否满足对称的性质
  • 对整数取余求每一位数

AC代码(c)

#include <stdio.h>
#include <stdlib.h>

int judgeSymmetry(int square);


int main()
{
	int i;

	for(i = 0; i < 256; i ++)
	{
		if(i == 0)
		{
			printf("0\n");
		}else
		{
			if(judgeSymmetry(i * i))
				printf("%d\n", i);
		}
	}

	return 0;
}

/**
 * Description:判断square是否满足对称性质
 */
int judgeSymmetry(int square)
{
	int i, j, flag, arr[10];

	//将square每一位放入数组中
	for(i = 0; square; i ++, square /= 10)
	{
		arr[i] = square % 10;
	}

	//判断数组是否符合对称性质
	for(flag = 1, j = i / 2; j >= 0; j --)
	{
		if(arr[j] != arr[i - 1 - j])
		{
			flag = 0;
			break;
		}
	}

	return flag;
}	


posted @ 2013-02-27 15:02  java程序员填空  阅读(245)  评论(0编辑  收藏  举报