NOIP1999 普及:第二题 回文数

C语言 BC158 [NOIP1999]回文数题解(含多个示例) 阅读详情

【题目描述】

若一个数(首位不为零)从左向右读与从右向左读都是一样,我们就将其称之为回文数。例如:给定一个 10进制数 56,将 56加 65(即把56从右向左读),得到 121是一个回文数。又如,对于10进制数87,

STEP1: 87+78= 165 STEP2: 165+561= 726

STEP3: 726+627=1353 STEP4:1353+3531=4884

在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。

写一个程序,给定一个N(2<N<=10或N=16)进制数 M.求最少经过几步可以得到回文数。如果在30步以内(包含30步)不可能得到回文数,则输出“Impossible” 。

【输入】

给定一个N(2<N<=10或N=16)进制数M。

【输出】

最少几步。如果在30步以内(包含30步)不可能得到回文数,则输出“Impossible”。

【输入样例】

9 87

【输出样例】

6

【解题思路】

这道题其实大家都想复杂了,什么2~10,16进制的.其实只要创建一个数组m1,然后m2存m1反过来的内容,两者相加。进位的话只要满n进一!十六进制的话其实也一样,只是输入的时候改一下就好了。

【参考代码】

#include<bits/stdc++.h>
using namespace std;
int n,m1[2000],m2[2000];
int len;
int shiliu(char a) {//十六进制的特殊输入
	if(a=='A')
		return 10;
	else if(a=='B')
		return 11;
	else if(a=='C')
		return 12;
	else if(a=='D')
		return 13;
	else if(a=='E')
		return 14;
	else if(a=='F')
		return 15;
}
void in() {//输入
	cin>>n;
	string a;
	cin>>a;
	len=a.size();
	for(int i=0; i<len; i++) {
		if(a[i]>='0'&&a[i]<='9')
			m1[i+1]=a[i]-48;
		else
			m1[i+1]=shiliu(a[i]);
	}
}
void dao() { //将m1反过来存到m2中
	for(int i=1; i<=len; i++)
		m2[len-i+1]=m1[i];
}
void jia() { //m1+m2
	for(int i=1; i<=len; i++) {
		m1[i]+=m2[i];
		if(m1[i]>=n) {
			m1[i]%=n;
			m1[i+1]++;
			if(i==len)
				len++;
		}
	}
}
bool huiwen() { //是否为回文
	for(int i=1; i<=len/2; i++) {
		if(m1[i]!=m1[len-i+1])
			return false;
	}
	return true;
}
int main() {
	in();
	int tian=0;
	while(tian<=30) {
		tian++;
		dao();
		jia();
		if(huiwen()==true) {
			printf("%d",tian);
			return 0;
		}
	}
	printf("Impossible");
	return 0;
}

因为题目的原因,有的题目输出可能要改为:printf("STEP=%d,tian);Impossible最后可能要加一个感叹号:Impossible!

NOIP普及组|1999T2回文数 1999年NOIP普及组第2题:回文数 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。 例如:给定一个十进制数 $56$,将 $56$ 加 $65$(即把 $56$ 从右向左读),得到 $121$ 是一个回文数。 阅读详情

相关推荐

【题解-洛谷】P1015 [NOIP 1999 普及组] 回文数

若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。位之内),求最少经过几步可以得到回文数。步以内得到回文数,输出格式形如。步)不可能得到回文数,则输出。在这里的一步是指进行了一次。进制的加法,上例最少用了。为最少得到回文数的步数。例如:给定一个十进制数。写一个程序,给定一个。

写代码的犄角旮瘩 1175

一本通-1309-回文数

【题目描述】 若一个数(首位不为零)从左向右读与从右向左读都是一样,我们就将其称之为回文数。例如:给定一个 10进制数 56,将 56加 65(即把56从右向左读),得到 121是一个回文数。又如,对于10进制数87, STEP1: 87+78= 165 STEP2: 165+561= 726 STEP3: 726+627=1353 STEP4:1353+3531=4884 在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。 写一个程序,给定一个N(2<N<=10或N=

超级氯化钾的博客 1554

P1015 [NOIP1999 普及组] 回文数/1309:【例1.6】回文数(Noip1999)

没想到我也有求助的亿天 P1015 [NOIP1999 普及组] 回文数 提交76.36k 通过24.62k 时间限制1.00s 内存限制125.00MB 提交答案加入题单复制题目 做题计划(首页) 个人题单 团队题单 保存 选择团队 保存 题目提供者CCF_NOI 难度普及- 历史分数100 提交记录查看题解 标签 NOIp 普及组1999 查看算法标签 进入讨论版 相关讨论 查看讨论 推荐题目 查看推荐 洛谷推荐关闭 复制Markd...

Xiaorui_xuan的博客 499

信息学奥赛一本通 1309:【例1.6】回文数(Noip1999) | 洛谷 P1015 [NOIP1999 普及组] 回文数

【题目链接】 ybt 1309:【例1.6】回文数(Noip1999) 洛谷 P1015 [NOIP1999 普及组] 回文数 注:两OJ上的问题考察内容相同,但输出要求不同 【题目考点】 1.高精度 n进制运算 数字数组每个元素保存n进制数字的1位 例:16进制数字A5F, 用数字数组表示为:a[0]:3, a[1]:15, a[2]:5, a[3]:10 十进制高精度计算函数中出现10的位置,都用n来代替,即为n进制计算。 【解题思路】 根据题目描述,先读入高精度数字。 循环进行:判断该数字是不是回

君义NOIP的博客 4342

NOIP普及组历届真题(1997~2018)

供大家刷题。 先上快捷的查看方式:NOIP普及组历届真题 来自洛谷——一个很好的刷题网站 剩下是具体题目和难度以及是第几年的题。 P1002 过河卒 NOIp普及组 2002 普及- P1008 三连击 NOIp普及组 1998 提交答案 普及- P1009 阶乘之和 NOIp普及组 1998 普及- P1010 幂次方 NOIp普及组 1998 普及- P1014 Cantor表 NOIp普及组...

Scnkd的博客 7639

1309:【例1.6】回文数(Noip1999)

1309:【例1.6】回文数(Noip1999) 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 若一个数(首位不为零)从左向右读与从右向左读都是一样,我们就将其称之为回文数。例如:给定一个 10进制数 56,将 56加 65(即把56从右向左读),得到 121是一个回文数。又如,对于10进制数87, STEP1: 87+78= 165 STEP2: 165...

lybc2019的博客 3404

P1015 [NOIP1999 普及组] 回文数

今天zty带来的是 P1015 [NOIP1999 普及组] 回文数 ,搞大家给个赞呗,zty还要上学,发作品会少一点先 赞 后 看 养 成 习 惯先 赞 后 看 养 成 习 惯。

zty20120913的博客 1152

题解:洛谷 P1015 [NOIP 1999 普及组] 回文数

等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。位之内),求最少经过几步可以得到回文数。步以内得到回文数,输出格式形如。步)不可能得到回文数,则输出。在这里的一步是指进行了一次。进制的加法,上例最少用了。为最少得到回文数的步数。例如:给定一个十进制数。写一个程序,给定一个。#普及-# #高精度#

团爸讲算法 712

【题解】【洛谷P1015】【高精度】—— [NOIP1999 普及组] 回文数

蓝胖子编程教育,是一家面向青少年的编程教育平台。平台为全国青少年提供最专业的编程教育服务,包括提供最新最详细的编程相关资讯、最专业的竞赛指导、最合理的课程规划等。本平台利用趣味性和互动性强的教学方式,旨在激发孩子们对编程的兴趣,培养他们的逻辑思维能力和创造力,让孩子们在轻松愉快的氛围中掌握编程知识,为未来科技人才的培养奠定坚实基础。这里有个小技巧:我们不需要将字符存储起来,而是将其对应的数字存储起来,这样方便编写代码。若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。

Pantheraonca的博客 997

华为无线AP+AC(ensp)

VLAN 100--192.168.100.0/24为AP的管理IP地址VLAN10--192.168.10.0/24为无线用户获取的IP地址在DHCP Server(LSW3)上查看地址分配情况。

abcdlalal的博客 1万+

从C-EPS到DP-EPS:手把手图解不同EPS类型怎么选,对你的车操控感影响有多大?

方向盘转动时那股细腻的阻尼感,高速过弯时令人安心的沉稳,或是狭窄车位里一根手指就能拨动的轻盈——这些看似微妙的差异,其实都源自转向系统电机那几厘米的安装位置变化。当我们谈论驾驶乐趣时,发动机参数和悬架调校总是占据C位,但真正连接驾驶者与车辆的神经末梢,恰恰是那套默默工作的电动助力转向系统(EPS)。不同EPS类型带来的操控特性差异,可能比马力数字更能定义一辆车的性格。

weixin_30920513的博客 531

P1015 [NOIP1999 普及组] 回文数 题解

P1015 [NOIP1999 普及组] 回文数 题解

yaosichengalpha的博客 1152

EB配置输入捕获ICU模块----基于S32K3

基于S32K311芯片,EB配置ICU输入捕获(Emios 和Siul)

weixin_43586400的博客 1772

【洛谷 P1015 NOIP 1999 普及组】 回文数

若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。例如:给定一个十进制数56,将56加65(即把56从右向左读),得到121是一个回文数。又如:对于十进制数8787781651655617267266271353135335314884在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。写一个程序,给定一个N2≤N≤10或N16)进制数M100位之内),求最少经过几步可以得到回文数。

Chow_Ssehc的博客 1145

Android HDMI-CEC协议解析:从机顶盒到电视的无缝遥控联动

本文深入解析Android HDMI-CEC协议,实现机顶盒与电视间的无缝遥控联动。通过剖析设备角色、消息格式及核心操作码,并结合Android HdmiControlManager API实战,详细讲解如何实现电源同步、按键穿透及音量控制,最终解决多设备遥控繁琐的痛点,提升用户体验。

egg99的博客 974

一种独特机理驱动的化学反应分类器详解

代码位置第 47-300+ 行// atom_494: 硫原子,度数=2,化合价=2,无H,无电荷!// atom_35: 氧原子,度数=1,1个H,无电荷// atom_347: 氧原子,度数=2,无H,无电荷!→atom_494()[OD1h1+0]→atom_35()→atom_347()特性传统方法(MCS)NameRXN(机理驱动)匹配策略最大公共子结构原子类型模式 + 操作码时间复杂度O(n) - 线性扫描机理理解无内置化学机理原子映射需额外计算自动推导准确性结构相似。

ASKCOS博客 156

NOIP 1999普及组 回文数

Description若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。例如121就是一个回文数。 对于任意一个数,可以进行如下变换,可以得到一个回文数。 例如: 给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数。 又如: 对于10进制数87: STEP1:87+78 = 165 STEP2:165+561 = 726 STEP3:726...

zmc1248234377的博客 1961

Linux:安装Debian最新10.x操作系统(超详细)

安装Debian最新10.x操作系统安装Debian最新10.x操作系统1.下载Debian镜像2. 镜像安装引导启动页面,选择图形化安装:选择语言、时区,选中后点击continue:选择键盘模式:配置Hostname主机名,设置Root密码创建普通用户名和密码,进入磁盘分区步骤,选择“所有文件放在同一个分区”确认分区信息磁盘配置完,进入软件安装模块:选择源:进入软件包配置,等待配置结束根据需要选择软件包安装3. 安装完成重启后登录使用 安装Debian最新10.x操作系统 1.下载Debian镜像 下载D

HowieXue 薛永浩的博客 3万+

[NOIP1999 普及组] 回文数

string s;q是高精数组,w是q反转后的数组,l是高精度数的长度,n是进制,ans是所需的步数, s是输入高精度的字符串。这题需要会高精加,高精反转,高精判断回文数和数组存高精度等诸多基础算法。

wo_ai_luo_的博客 966

AUTOSAR汽车电子嵌入式编程精讲300篇-基于加密算法的车载CAN总线安全通信

随着科学技术的不断更新和社会文明的不断进步,汽车已经走入寻常百姓家, 成为当代社会必不可少的交通工具。伴随着互联网技术的飞速发展,汽车也不再 是一个简单的交通工具,已经逐渐发展成为一个集出行、通信、娱乐等功能于一 身的综合智能体,进而推动了车联网产业的蓬勃发展。车联网是在传统汽车的框架上安装了传感器、执行器、控制器等分布式和集 中式控制器,使汽车具备环境感知、协同控制、优化执行等功能,并通过网络技 术实现与车外环境的信息共享,给驾驶带来方便的同时也终将成为可以替代人操 作的新一代汽车[1-3]。

getusushu的博客 2590

Python在振动信号处理中的应用(一):振动信号消除多项式趋势项

文章目录一、概述二、最小二乘法去除趋势项原理三、python模块介绍3.1 scikitlearn简介(1)转化器(Transformer)(2)估计器(Estimator)3.2 线性回归LinearRegression3.3 多项式PolynomialFeatures3.4 工作流Pipeline四、python代码实现4.1 构造模拟信号4.2 编写去除趋势项主代码4.3 展示算法效果五、TIPS 一、概述   在振动测试过程中,传感器或采集设备由于自身性能问题或受环境干扰(如温度、供电等影响),容易

白银时代的博客 8578

3445:【例78.3】回文数(Noip1999)

3445:【例78.3】回文数(Noip1999)

青少年趣味编程 1294

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 1858:【09NOIP提高组】靶形数独
下一篇: 2005:【20CSPJ普及组】直播获奖
nothing but nothing
博客等级 码龄5年 26粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值