http://ac.jobdu.com/problem.php?pid=1074
题目描述:
打印所有不超过n(n<256)的,其平方具有对称性质的数。
如11*11=121
在OJ上strlen()的头文件要包括#include <cstring>,但是我在本地VS里不需要加上的;
在本地VS里可以用itoa()或者(为了安全性考虑VS要求)用_itoa_s()函数来将int型转化成字符串型,但是在OJ上不能通过,可以改成用sprintf(str, "%d", n)
//题目1074:对称平方数
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
int main()
{
int n = 0, square;
char str[6];
for (; n < 256; n++)
{
square = n * n;
sprintf_s(str, "%d", square);//将10进制平方数的int型转化成字符型,从而头尾对称比较
// _itoa_s(square, str, 10); //将10进制平方数的int型转化成字符型,从而头尾对称比较
int len = strlen(str);
int i;
for (i = 0; i < len / 2; i++)
if (str[i] != str[len - 1 - i])
break;
if (i == len / 2)
cout << n << endl;
}
return 0;
}