首页 > 其他分享 >一千题,No.0093(延迟的回文数)

一千题,No.0093(延迟的回文数)

时间:2024-06-22 22:56:45浏览次数:21  
标签:10 string int res No.0093 num 回文 延迟

给定一个 k+1 位的正整数 N,写成 ak​⋯a1​a0​ 的形式,其中对所有 i 有 0≤ai​<10 且 ak​>0。N 被称为一个回文数,当且仅当对所有 i 有 ai​=ak−i​。零也被定义为一个回文数。

非回文数也可以通过一系列操作变出回文数。首先将该数字逆转,再将逆转数与该数相加,如果和还不是一个回文数,就重复这个逆转再相加的操作,直到一个回文数出现。如果一个非回文数可以变出回文数,就称这个数为延迟的回文数。(定义翻译自 https://en.wikipedia.org/wiki/Palindromic_number )

给定任意一个正整数,本题要求你找到其变出的那个回文数。

输入格式:

输入在一行中给出一个不超过1000位的正整数。

输出格式:

对给定的整数,一行一行输出其变出回文数的过程。每行格式如下

A + B = C

其中 A 是原始的数字,B 是 A 的逆转数,C 是它们的和。A 从输入的整数开始。重复操作直到 C 在 10 步以内变成回文数,这时在一行中输出 C is a palindromic number.;或者如果 10 步都没能得到回文数,最后就在一行中输出 Not found in 10 iterations.

输入样例 1:

97152

输出样例 1:

97152 + 25179 = 122331
122331 + 133221 = 255552
255552 is a palindromic number.

输入样例 2:

196

输出样例 2:

196 + 691 = 887
887 + 788 = 1675
1675 + 5761 = 7436
7436 + 6347 = 13783
13783 + 38731 = 52514
52514 + 41525 = 94039
94039 + 93049 = 187088
187088 + 880781 = 1067869
1067869 + 9687601 = 10755470
10755470 + 07455701 = 18211171
Not found in 10 iterations.

解题思路:

逆转相加即可,但是注意的是,需要写一个大数加法器,因为这样计算十分容易超出long long int的上限。

c++代码如下:

#include <bits/stdc++.h>

#define int long long
using namespace std;

bool is_num(string s)
{
    string ss = s;
    reverse(s.begin(),s.end());
    if(ss == s) return true;
    else return false;
}

string add(string x)
{
    string res = "";
    string y = x;
    reverse(y.begin(),y.end());
    int temp = 0;
    for(int i = 0;i < x.length();++i)
    {
        int num = x[i] + y[i] - '0' - '0' + temp;
        if(num >= 10)
        {
            temp = 1;
            num -= 10;
        }
        else
        {
            temp = 0;
        }
        res += to_string(num);
    }
    if(temp != 0) res += "1";
    reverse(res.begin(),res.end());
    return res;
}

signed main()
{
    string s;
    cin >> s;
    int i = 0;
    while(!is_num(s) && i != 10)
    {
        cout << s << " + ";
        reverse(s.begin(), s.end());
        cout << s;
        cout << " = ";
        s = add(s);
        cout << s << endl;
        ++i;

    }
    if(i == 10)
    {
        cout << "Not found in 10 iterations.";
    }
    else
    {
        cout << s << " is a palindromic number.";
    }
}

标签:10,string,int,res,No.0093,num,回文,延迟
From: https://blog.csdn.net/2301_76783671/article/details/139886047

相关文章

  • 炭熄卡顿、延迟高、联机报错的解决方法一览
    炭熄在制作中巧妙地结合了程序随机生成的元素,为玩家呈现出了一个充满未知与惊险的开放世界,是一款独具匠心的中式民俗恐怖题材游戏。在这款游戏中,玩家将化身为一位意外闯入村子的青年,面对种种鬼怪、努力活下来。游戏将于6月24日登陆steam平台,为了获得最好的游戏体验,我们这就来一......
  • 在Linux中,mysql 如何减少主从复制延迟?
    主从复制延迟是MySQL数据库中一个常见但关键的问题,它直接影响到数据的实时性和系统的响应速度。在企业生产环境中,解决此问题能显著提高数据库的性能和稳定性。下面将详细探讨如何减少主从复制延迟:查看同步延迟状态使用SHOWSLAVESTATUS命令:该命令可提供关于从库复制状态的详......
  • 双基回文数(python练习)
    编写一个程序来检查一个数字是否是双基回文数。回文是指从前往后读和从后往前读都一样的字母、数字的序列。双基回文数是指在十进制和二进制表示中都是回文的数字。例如:585=1001001001是一个双基回文,其二进制是回文形式,十进制也是回文形式。定义函数check_double_base_......
  • 构建高效的大数据量延迟任务调度平台
    目录引言系统需求分析系统架构设计总体架构任务调度模块任务存储模块任务执行模块任务调度算法时间轮算法优先级队列分布式锁数据存储方案关系型数据库NoSQL数据库混合存储方案容错和高可用性主从复制数据备份与恢复故障转移性能优化水平扩展缓存机制异步处理监......
  • #c:键盘输入一个字符串判断它是不是回文 回文:123321
    小小案例仅供参考:/键盘输入一个字符串判断它是不是回文比如:12321这个就是回文#include<stdio.h>#include<string.h>voidtest01(){  charbuf[128]="";  printf("请输入一个字符串:\n");  fgets(buf,sizeof(buf),stdin);  buf[strlen(buf)-1]=0; ......
  • Day 26| 39. 组合总和 、 40.组合总和II 、 131.分割回文串
    组合总和本题是集合里元素可以用无数次,那么和组合问题的差别其实仅在于startIndex上的控制题目链接/文章讲解:https://programmercarl.com/0039.组合总和.html视频讲解:https://www.bilibili.com/video/BV1KT4y1M7HJ给定一个无重复元素的数组candidates和一个目标数targ......
  • 代码随想录算法训练营第六十天 | 647. 回文子串、516.最长回文子序列
    647.回文子串文字讲解:代码随想录视频讲解:动态规划,字符串性质决定了DP数组的定义|LeetCode:647.回文子串_哔哩哔哩_bilibili解题思路1.dp[i][j]     [i,j]子串是否是回文的      是则返回true,不是则返回false2.递推公式if(s[i]==s[j])   ......
  • 最长回文子串
    给你一个字符串 s,找到 s 中最长的回文子串。publicclassSolution{publicStringlongestPalindrome(Strings){intlen=s.length();if(len<2){returns;}intmaxLen=1;intbegin=0;......
  • “【SpringBoot】SpringBoot整合RabbitMQ消息中间件,实现延迟队列和死信队列”文章说了
    在SpringBoot中整合RabbitMQ以实现延迟队列和死信队列的功能,主要涉及以下几个关键步骤:1.引入依赖:首先,在项目的pom.xml文件中添加RabbitMQ的依赖。2.配置RabbitMQ:在application.properties或application.yml文件中配置RabbitMQ的相关参数,包括连接信息、交换机名称、队列名......
  • 无延迟,持续畅玩 - Wi-Fi 6 助力打造游戏厅极致体验
    1、需求背景:连锁游戏厅行业竞争激烈,顾客对高品质的游戏体验有着高要求。网络是游戏厅的核心基础设施之一,需要确保游戏过程中的网络连接稳定性和顾客满意度。长时间稳定连接为保证顾客的游戏体验感,游戏厅要确保网络连接长时间稳定,避免游戏过程中的中断或延迟。抗干扰性网络......