题目描述
打印所有不超过n(n<256)的,其平方具有对称性质的数。如11*11=121。输入描述:
无
输出描述:
每行一个数,表示对称平方数。示例1
输入
复制无
输出
复制无
解题思路:利用c++的字符串进行数和字符串进行转换
本质还是回文数的判断而已
#include <iostream> #include <cmath> #include <algorithm> #include <set> #include <cstdio> #include <string> #include <cstring> /*@author:浅滩 *family: *time: */ //我好像是一个在海边玩耍的孩子, //不时为拾到比通常更光滑的石子或更美丽的贝壳而欢欣鼓舞, //而展现在我面前的是完全未探明的真理之海 using namespace std; bool isRight(string num)//回文数 { //int len=num.size(); //int num1=stoi(num); int j=num.size()-1; for(int i=0;i<num.size()/2;i++) { if(num[i]!=num[j]) return false; j--; }return true; } int main() { int i; for(i=1;i<=256;i++)//不能输出0,题目还没说真鸡儿坑 { string str=to_string(i*i); if(isRight(str)==true) cout<<i<<endl; } //cout << "Hello world!" << endl; return 0; }