1079 延迟的回文数 (20 分)

#include <bits/stdc++.h>
using namespace std;
#define ll long long
string turn(string s)
{
    reverse(s.begin(),s.end());
    return s;
}
string add(string a,string b)
{
    string c = a;
    int m = 0;
    for(int i = a.size()-1;i>=0;i--)
    {
        c[i] = (a[i]-‘0‘+b[i]-‘0‘+m)%10+‘0‘;
        m = (a[i]-‘0‘+b[i]-‘0‘+m)/10;
    }
    if(m>0)
    {
        c = ‘1‘+c;
    }
    return c;
}
int main()
{
    string s,sum;
    int n=10;
    cin>>s;
    if(s == turn(s)){
        cout<<s<<" is a palindromic number.\n";
        return 0;
    }
    while(n--)
    {
        sum = add(s,turn(s));
        cout<<s<<" + "<<turn(s)<<" = "<<sum<<endl;
        if(sum ==turn(sum)){
            cout<<sum<<" is a palindromic number.\n";
            return 0;
        }
        s =sum;
    }
    cout<<"Not found in 10 iterations.\n";
    return 0;
}

原文地址:https://www.cnblogs.com/tonyyy/p/10479557.html

时间: 2024-10-28 02:58:57

1079 延迟的回文数 (20 分)的相关文章

PTA乙级(1079 延迟的回文数 (20分))

1079 延迟的回文数 (20分) https://pintia.cn/problem-sets/994805260223102976/problems/994805261754023936 1 #include <cstdio> 2 #include <cstring> 3 #include <string> 4 #include <iostream> 5 #include <algorithm> 6 #include <cmath>

PAT 1079. 延迟的回文数

PAT 1079. 延迟的回文数 给定一个 k+1 位的正整数 N,写成 ak...a1a0 的形式,其中对所有 i 有 0 <= ai < 10 且 ak > 0.N 被称为一个回文数,当且仅当对所有 i 有 ai = ak-i.零也被定义为一个回文数. 非回文数也可以通过一系列操作变出回文数.首先将该数字逆转,再将逆转数与该数相加,如果和还不是一个回文数,就重复这个逆转再相加的操作,直到一个回文数出现.如果一个非回文数可以变出回文数,就称这个数为延迟的回文数.(定义翻译自 https

B1079 延迟的回文

给定一个 k+1 位的正整数 N,写成 a?k???a?1??a?0?? 的形式,其中对所有 i 有 0 且 a?k??>0.N 被称为一个回文数,当且仅当对所有 i 有 a?i??=a?k−i??.零也被定义为一个回文数. 非回文数也可以通过一系列操作变出回文数.首先将该数字逆转,再将逆转数与该数相加,如果和还不是一个回文数,就重复这个逆转再相加的操作,直到一个回文数出现.如果一个非回文数可以变出回文数,就称这个数为延迟的回文数.(定义翻译自 https://en.wikipedia.org/

习题-四季-回文数-不死神兔

1-键盘录入月份,输出对应的季节.一年有四季;3,4,5春季;6,7,8夏季;9,10,11秋季;12,1,2冬季 public class Demo02Test {     public static void main(String[] args) {         // 键盘录入一个月份,用Scanner实现         Scanner sc = new Scanner(System.in);         // 接收数据         System.out.println("请

洛谷 P1015 回文数 Label:续命模拟QAQ

题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个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=1

shu_1180 回文数(一)

http://202.121.199.212/JudgeOnline/problem.php?cid=1079&pid=21 分析: 回文串判断,字符串处理 1. atoi 函数(ascii tointeger 将字符串转换成整型数) 头文件: #include <stdlib.h> int atoi(const char *nptr): 由于程序中使用string类,所以应该用 str.c_str() 将string转为c语言下的字符串数组. 2. itoa函数(与atoi功能相反)

用JS实现回文数的精准辨别!!!

笔者最近在一边看<JS高级程序设计3>一边在FCC上找题目练习啊.那叫一个爽.这不,刚刚用生命在课堂,寝室,实验室,图书馆等各种场所将第五章"引用类型"搞定,FCC便知趣的给笔者来了个"回文数",笔者咬牙切齿,花了两天时间,又是研究数组,又是研究字符串,又是研究作用域,还看了很长时间的正则表达式.还好,不负有心人,嘿嘿嘿,现在为大家详细分享用JS实现精准回文数的辨别!!! 先给大家看几个类型的字符串: race car not a palindrome

大于非负整数N的第一个回文数 Symmetric Number

1.题目 如标题,求大于整数N(N>=0)的第一个回文数的字符串表示形式. 2.样例 1  --> 2 9  -->11 12345 -->12421 123456 -->124421 999 -->1001 3.分析 借用:http://www.cnblogs.com/xudong-bupt/p/4015226.html 4.代码 1 import java.util.Scanner; 2 3 4 public class SymmetricNumber { 5 6

3.回文数(Palindrome.cpp)

输入(Palindrome.in): 第一行是一个整数p,代表游戏进行的局数 接下来p行 每行有两个整数 j,h, 分别是小学姐们想出来的数字. 0 < p <=100 0 <= j <= 1000000 0 < = h <= 1000000 输出(Palindrome.out) p 行数据 每一行,先输出序号,接着是所有的回文数,以空隔开,如果不存在 则输出"WTF!!!". 序号后一个冒号和一个空格 样例输入 320 12150 400300 3