版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42449444/article/details/88080072
1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
按从小到大的顺序输出满足条件的四位十进制数。
看完这道水题后,我的第一思路是用to_string()函数把数字转换成字符串,再用reverse()函数来翻转字符串,要是翻转后的字符串和原字符串相等,就说明这是一个回文数。可是!蓝桥杯练习系统报错了:to_string() was not declared in this scope。这个报错真的搞起我一脸懵逼,没办法那只好采用对10取余的方法,依次取出各位数字然后反序构成新的数,再将新数与原数比较。
#include <bits/stdc++.h>
using namespace std;
bool isHW1(int n) //通过翻转字符串来判断一个数是不是回文数
{
//这种方法codeblocks自测没问题但是提交之后会编译器报错
//to_string() was not declared in this scope
string str = to_string(n);
string temp = str;
reverse(str.begin(),str.end());
return str == temp;
}
bool isHW2(int n) //
{
int temp = n, m = 0;
while(temp > 0)
{
m = m*10 + temp%10;
temp /= 10;
}
return m == n;
}
//方法三、用栈的“先进后出”求解
int main()
{
for(int i = 1000; i < 10000; i++)
{
if(isHW2(i))
{
cout << i << endl;
}
}
return 0;
}