栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

AcWing1346. 回文平方

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AcWing1346. 回文平方

题目

回文数是指数字从前往后读和从后往前读都相同的数字。

例如数字 12321 就是典型的回文数字。

现在给定你一个整数 B,请你判断 1∼300之间的所有整数中,有哪些整数的平方转化为 B 进制后,其 B 进制表示是回文数字。

输入格式

一个整数 B。

输出格式

每行包含两个在 B 进制下表示的数字。

第一个表示满足平方值转化为 B 进制后是回文数字那个数,第二个数表示第一个数的平方。

所有满足条件的数字按从小到大顺序依次输出。

数据范围

2≤B≤20,
对于大于 9 的数字,用 A 表示 10,用 B 表示 11,以此类推。

输入样例:

10

输出样例:

1 1
2 4
3 9
11 121
22 484
26 676
101 10201
111 12321
121 14641
202 40804
212 44944
264 69696

源代码 

#include
#include//调用.size()函数取得字符串长度 
#include//调用revserse函数 
using namespace std;
int huiwen(string str)//双指针法判断字符串是否回文 
{
	int i,j;
	for(i=0,j=str.size()-1;i=0&&x<=9)return (x+'0'); 
	else return (x-10+'A');
}
string trans(int n,int B)//将数字转换为字符串的函数 
{
	string s;//首先先定义一个空串用于储存 
	while(n>0)//逐位转换 
	{
		s=s+letter(n%B);//调用letter函数 
		n=n/B;//舍去最低位 
	}
	reverse(s.begin(),s.end());//反转字符串 
	return s;//返回字符串的值 
} 
int main()
{
	int B;
	cin>>B;
	for(int i=1;i<=300;i++)//筛选1-300中的数字 
	{
		string str=trans(i*i,B);//对i的平方进行字符串转换 
		if(huiwen(str))//进行回文判断 
		{
			string s=trans(i,B);
			cout< 

 当然最后输出字符串时也可以使用printf函数按%s进行输出不过要加.c_str()后缀兼容%s的格式

cout<

本题中调用的c++函数以及库知识

#include     字符串.size() 获取字符串长度并用一个变量接收

#include  revserse(字符串.begin(),字符串.end()) 对字符串进行翻转

c++输出字符串用printf函数按%s时,须用字符串.c_str()作为后缀来在c++里实行兼容

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703190.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号