首页 > 其他分享 >PAT Advanced 1024 Palindromic Number(25)

PAT Advanced 1024 Palindromic Number(25)

时间:2022-08-22 22:07:13浏览次数:70  
标签:1024 PAT temp palindromic res number steps 25 numbers

题目描述:

A number that will be the same when it is written forwards or backwards is known as a Palindromic Number. For example, 1234321 is a palindromic number. All single digit numbers are palindromic numbers.

Non-palindromic numbers can be paired with palindromic ones via a series of operations. First, the non-palindromic number is reversed and the result is added to the original number. If the result is not a palindromic number, this is repeated until it gives a palindromic number. For example, if we start from 67, we can obtain a palindromic number in 2 steps: 67 + 76 = 143, and 143 + 341 = 484.

Given any positive integer N, you are supposed to find its paired palindromic number and the number of steps taken to find it.

Input Specification:

Each input file contains one test case. Each case consists of two positive numbers N and K, where N (≤1010) is the initial numer and K (≤100) is the maximum number of steps. The numbers are separated by a space.

Output Specification:

For each test case, output two numbers, one in each line. The first number is the paired palindromic number of N, and the second number is the number of steps taken to find the palindromic number. If the palindromic number is not found after K steps, just output the number obtained at the Kth step and K instead.

Sample Input 1:

67 3

Sample Output 1:

484
2

Sample Input 2:

69 3

Sample Output 2:

1353
3

算法描述:回文数

题目大意:

给定一个数字,和允许翻转后相加的次数k,求要多少次才能变成一个回文数字,输出那个回文数字和翻转相加了多少次,如果本身就是回文数字就输出0次,如果超过给定的次数k了,就输出那个不是回文的结果,并且输出给定的次数k

#include<iostream>
#include<algorithm>
using namespace std;

string s;
// 添加反转数
void add(string temp)
{
    string res;
    int len = s.size(), t = 0;
    for(int i = len - 1 ; i >= 0 ; i --)
    {
        t += (s[i] - '0') + (temp[i] - '0');
        res += (t % 10) + '0';
        t /= 10;
    }
    if(t)   res += '1';
    
    reverse(res.begin(), res.end());
    s = res;
}

int main()
{
    int k, step = 0;
    cin >> s >> k;
    for(step ; step < k ; step ++)
    {
        string temp = s;
        reverse(temp.begin(), temp.end());
        if(s == temp)  break;
        add(temp);
    }
    cout << s << endl << step;
    return 0;
}

标签:1024,PAT,temp,palindromic,res,number,steps,25,numbers
From: https://www.cnblogs.com/yztozju/p/16614380.html

相关文章

  • ELK-内置分词器-simple_pattern分词器
    一.simple_pattern分词器simple_pattern分词器是根据正则表达式进行分词的分词器#创建映射并定义字段内容分词的正则表达式#正则表达式表示,如果连续有3个数字在一起,则......
  • 由LOG_PATH_IS_UNDEFINED/LOG_HOME_IS_UNDEFINED引发的问题
    使用SpringBoot+LogBack的项目在程序启动之后总是在项目根目录产生一个 LOG_PATH_IS_UNDEFINED 的文件夹,原因是Spring容器在Logback初始化之后设置 LOG_PATH ,......
  • PAT 计数
    https://www.acwing.com/problem/content/1585/状态机的解法#include<iostream>#include<cstring>usingnamespacestd;constintN=100010,MOD=1e9+7;......
  • 使用pnpm的patch命令打补丁(正确修改源码,在外部修改node_modules代码 )
    在开发时,有时碰到依赖的类库有bug或者不满足要求时让作者改,一般不太现实和及时使用patch-package打补丁,安装依赖后自动打上修改的内容在pnpm7.4(pnpm高效npm版本管理工......
  • 1010 Radix(25分)
    Givenapairofpositiveintegers,forexample,6and110,canthisequation6=110betrue?Theansweris yes,if6isadecimalnumberand110isabinary......
  • PAT Advanced 1023 Have Fun with Numbers(20)
    题目描述:Noticethatthenumber123456789isa9-digitnumberconsistingexactlythenumbersfrom1to9,withnoduplication.Doubleitwewillobtain2469135......
  • Java学习 (25) 对象篇(05)抽象类&接口
    目录抽象类语法实例注意点具体讲解视频(狂神说Java)接口语法实例具体讲解视频(狂神说Java)抽象类abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是......
  • cf1254 B2. Send Boxes to Alice (Hard Version)
    题意:给定非负数组,每次操作可以选一个\(a_i\neq0\),令\(a_i\)减一,\(a_i\)相邻的一个数(如果存在)加一。问最少几次操作能使所有数有\(>1\)的公因数\(n,a_i\le1e6\)......
  • 性能测试-压测工具ab-1024个并发以下可用以及ab和wrk的优缺点
    ab全称:ApacheBench,用于web性能压力测试,ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问。ab命令对发出负载的计算机要求很低,不会占用很高CPU......
  • 【luogu P2508】圆上的整点(高斯素数模板)
    圆上的整点题目链接:luoguP2508题目大意给你一个圆,问你圆周上有多少个点的坐标是整点。思路考虑一个东西叫做高斯整数。其实它是复数,是\(a+bi\)中\(a,b\)都是整......