前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【蓝桥杯】BASIC-8 回文数

【蓝桥杯】BASIC-8 回文数

作者头像
喜欢ctrl的cxk
发布2019-11-08 11:02:32
5690
发布2019-11-08 11:02:32
举报
文章被收录于专栏:Don的成长史

版权声明:本文为博主原创文章,遵循 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取余的方法,依次取出各位数字然后反序构成新的数,再将新数与原数比较。

AC代码:

代码语言:javascript
复制
#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;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/03/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述:
  • 输出格式:
  • 解题思路:
  • AC代码:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档