洛谷P1015回文数

题目描述

若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。

例如:给定一个十进制数 5656,将 5656 加 6565(即把 5656 从右向左读),得到 121121 是一个回文数。

又如:对于十进制数 8787:

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(100 位之内),求最少经过几步可以得到回文数。如果在 30 步以内(包含 30 步)不可能得到回文数,则输出 Impossible!

输入格式

两行,分别是 N,M。

输出格式

如果能在 30 步以内得到回文数,输出格式形如 STEP=ans,其中 ans为最少得到回文数的步数。

否则输出 Impossible!

输入输出样例

输入 #1

10
87

输出 #1

STEP=4

这题用add函数负责将当前数与它的反向读取数相加,并更新到 c[] 数组中,同时处理进位情况和去除高位前导零。用pd函数判断当前数是否为回文数。用main

将字符转换为对应的数值存入 c [ ] 

#include <bits/stdc++.h>
using namespace std;
int n, a[305], len;
char c[305], d[305];void add() {for (int i = 0; i < len; i++)d[len - i - 1] = c[i];len+=2;for (int i = 0; i < len; i++) {c[i] += d[i];if (c[i] >= n) {c[i + 1]++;c[i] -= n;}}while (!c[len - 1])len--;
}
bool pd() {for (int i = 0; i < len; i++) {if (c[i] != c[len - 1 - i]) {return false;}}return true;
}int main() {cin >> n >> c;len= strlen(c);for (int i = 0; i < len; i++) {if (c[i] >= '0' && c[i] <= '9')c[i] -= '0';elsec[i] = c[i] - 'A' + 10;}int step = 0;while (!pd()) {step++;if (step > 30)break;add();}if (step <= 30)cout << "STEP=" << step;elsecout << "Impossible!";return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/712449.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯刷题2

1. 修建灌木 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);int n scan.nextInt();for (int i 1;i < n1;i){int distance Math.max(i-1,n-i);System.out.println(distance*2);}scan.close…

软件设计师软考题目解析12 --每日五题

想说的话&#xff1a;要准备软考了。0.0&#xff0c;其实我是不想考的&#xff0c;但是吧&#xff0c;由于本人已经学完所有知识了&#xff0c;只是被学校的课程给锁在那里了&#xff0c;不然早找工作去了。寻思着反正也无聊&#xff0c;就考个证玩玩。 本人github地址&#xf…

种花

分情况&#xff1a; 第一盆k种选择&#xff0c;之后全部k-1种选择 每次相乘结果对1e97取模 #include <iostream> #include <vector> #include <algorithm> using namespace std; #define endl \n const int N 1e9 7;int main() {ios::sync_with_stdio(f…

微信小程序iOS禁止上下拉显示白边

先上图暴露出问题 iOS端这个页面明明正好显示的&#xff0c;非要能下拉上拉给显示出来点白边。这样不就不好看了嘛。。 想了想是不是支持页面下拉导致的&#xff0c;加入以下代码到json文件中。 {"enablePullDownRefresh": false,"usingComponents": {} }…

java009 - Java面向对象基础

1、类和对象 1.1 什么是对象 万物皆对象&#xff0c;客观存在的事物皆为对象。 1.2 什么是面向对象 1.3 什么是类 类是对现实生活中一类具有共同属性和行为的事物抽象。 特点&#xff1a; 类是对象的数据类型类是具有相同属性和行为的一组对象的集合 1.4 什么是对象的属…

project.config.json 文件内容错误] project.config.json: libVersion 字段需为 string, string

家人们&#xff0c;遇到了一个新的报错 于是从网上找了各种方法&#xff0c;有说把开发者工具关闭重启的&#xff0c;有说开发者工具下载重新下载的&#xff0c;有说开发者工具路径安装得在C盘的&#xff0c;均没有效果 解决方法&#xff1a; 1、运行项目&#xff0c;在开发者…

[安洵杯 2019]easy_serialize_php1

打开题目 题目源码&#xff1a; <?php$function $_GET[f];function filter($img){$filter_arr array(php,flag,php5,php4,fl1g);$filter /.implode(|,$filter_arr)./i;return preg_replace($filter,,$img); }if($_SESSION){unset($_SESSION); }$_SESSION["user&q…

好的测试数据管理,到底要怎么做?

你的组织是否实施了测试数据管理&#xff1f;如果你的组织处理关键或敏感的业务数据&#xff0c;测试数据管理肯定会让组织受益。与测试数据相关的问题占所有软件缺陷的 15%&#xff0c;这一事实强调了测试数据的重要性。本文将准确讨论测试数据经理职责、测试数据经理需要什么…

java-ssm-jsp广播剧制作订阅系统

java-ssm-jsp广播剧制作订阅系统 获取源码——》公主号&#xff1a;计算机专业毕设大全

AFL fork server和fuzzer的交互

看了一些博客&#xff0c;都是在说fuzzer和fork server进行交互&#xff0c;由fork server fork出子进程来执行程序&#xff0c;但是不太明白这两者到底是如何在代码层面进行交互的。 run_target中有这么一段代码&#xff0c;大概意思是fuzzer给fork server传递prev_timed_out…

13.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-如果没有工具就创造工具

内容参考于&#xff1a; 易道云信息技术研究院VIP课 上一个内容 &#xff1a;12.游戏网络通信存在的问题 现在把游戏网络的架构看了一个小小的大概&#xff0c;可以用它的接口发数据接收数据了&#xff0c;如果真正想用它这一套东西&#xff0c;真正核心不在于它的接口而在于…

2024GAS《声学大讲堂》

由中国电子音响行业协会主办&#xff0c;上海市浦东新区先进音视频技术协会承办的GAS《声学大讲堂》2021年开播&#xff0c;三年来GAS《声学大讲堂》开设了“沉浸声音频与艺术”、“智能车载音频”、“智能可穿戴”、“智能耳机”、“智能音箱”、“专业音响”、“助听/辅听设备…

老卫带你学---leetcode刷题(268. 丢失的数字)

268. 丢失的数字 问题 给定一个包含 [0, n] 中 n 个数的数组 nums &#xff0c;找出 [0, n] 这个范围内没有出现在数组中的那个数。 示例 1&#xff1a; 输入&#xff1a;nums [3,0,1] 输出&#xff1a;2 解释&#xff1a;n 3&#xff0c;因为有 3 个数字&#xff0c;所以…

R语言安装和简单入门HelloWorld用法

R语言安装和简单入门HelloWorld用法 #R语言安装地址 https://www.r-project.org/ click->CRAN mirror->选择China下列表&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/CRAN/ 选择Download R for Windows 选择base Download R-4.3.2 for Windows 下载文件R-4.3.2-…

怎么重构数据库表结构

重构数据库表结构是指对已有的数据库表进行调整和优化&#xff0c;以提高数据库的性能、可扩展性和可维护性。以下是一些重构数据库表结构的常见步骤&#xff1a; 分析现有表结构&#xff1a;首先&#xff0c;仔细分析现有的数据库表结构&#xff0c;了解表之间的关系和依赖关…

数据结构从入门到精通——算法的时间复杂度和空间复杂度

算法的时间复杂度和空间复杂度 前言一、算法效率1.1 如何衡量一个算法的好坏1.2 算法的复杂度 二、时间复杂度2.1 时间复杂度的概念2.2 大O的渐进表示法2.3常见时间复杂度计算举例2.4等差数列计算公式2.5等比数列计算方法 三、空间复杂度四、 常见复杂度对比五、 复杂度的oj练习…

ts学习:is关键词

is关键词主要用来框定类型并实现对应的类型断言&#xff0c;下面看一个例子 写一个简单函数来判断某个值是否是字符串类型 function isString(value:unknown):boolean{return typeof value "string" } 这里我们的参数选用了unknown类型&#xff0c;该类型就是一个…

python代码优化学习

代码优化对比&#xff1a; 优化前&#xff1a; # 登录系统 xxljob_login() start_time time.time() # 循环处理需要补数的数据 for item in authId_lists: preSettleInfoHandler(item) count 1 print("运行了第" str(count) "个") …

数据分析---主要工作

目录 几个主要工作常用的数据分析工具具体的使用场景几个主要工作 数据清洗和预处理:对原始数据进行清洗、去重、填充缺失值、处理异常值等操作,以确保数据的准确性和完整性。探索性数据分析(EDA):通过可视化和统计方法,对数据进行探索,发现数据的分布、相关性、异常情况…

【JVM】聊聊常见的JVM排查工具

JDK工具包 jps 虚拟机进程状况工具 jps是虚拟机进程状况工具&#xff0c;列出正在运行的虚拟机进程&#xff0c;使用 Windows 的任务管理器或 UNIX 的 ps 命令也可以查询&#xff0c;但如果同时启动多个进程&#xff0c;必须依赖 jps。jps -l 显示类名 jps :列出Java程序进程…