PAT(B) 1079 延迟的回文数(Java)
题目链接:1079 延迟的回文数 (20 point(s))
题目描述
给定一个 k+1 位的正整数 N,写成 ak⋯a1a0 的形式,其中对所有 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.
。
测试样例
Case 0:
97152
97152 + 25179 = 122331
122331 + 133221 = 255552
255552 is a palindromic number.
Case 1:
196
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.
Case 2:
10
10 + 01 = 11
11 is a palindromic number.
Case 3:
11
11 is a palindromic number.
Java代码
/**********************************************************************************
Submit Time Status Score Problem Compiler Run Time User
8/19/2019, 17:36:23 Accepted 20 1079 Java (openjdk) 77 ms wowpH
**********************************************************************************/
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder C = new StringBuilder(br.readLine()); // 输入的正整数
StringBuilder D = new StringBuilder(C).reverse(); // 反转后的数
int times = 0; // 操作次数
// 当C不是回文数且操作未超过10次,那么继续反转相加
while (!C.toString().contentEquals(D) && (++times) <= 10) {
StringBuilder A = new StringBuilder(C);
StringBuilder B = new StringBuilder(A).reverse(); // 反转后的A
D = new StringBuilder(A.length() + 1); // A+B的和(左边低位右边高位)
int carry = 0; // 进位
for (int i = 0; i < A.length(); ++i) {
int sum = (A.charAt(i) - 48) + (B.charAt(i) - 48) + carry;// 和
carry = sum / 10; // 新的进位
D.append((char) (sum % 10 + 48)); // 添加到和的右边
}
if (carry > 0) { // 有进位
D.append(carry); // 添加到和的右边
}
C = new StringBuilder(D).reverse(); // A+B的和(左边高位右边低位)
System.out.print(A.append(" + ").toString());
System.out.print(B.append(" = ").toString());
System.out.println(C.toString());
}
if (times > 10) { // 超过10次,未找到
System.out.println("Not found in 10 iterations.");
} else { // 未超过10次,延迟回文数
System.out.println(C.toString() + " is a palindromic number.");
}
}
}
提交结果
PAT(B) 1079 延迟的回文数(Java)的更多相关文章
- PAT 乙级 1079 延迟的回文数(20 分)
1079 延迟的回文数(20 分) 给定一个 k+1 位的正整数 N,写成 ak⋯a1a0 的形式,其中对所有 i 有 0≤ai<10 且 ak>0.N 被称 ...
- PAT Baisc 1079 延迟的回文数 (20 分)
给定一个 k+1 位的正整数 N,写成 ak⋯a1a0 的形式,其中对所有 i 有 0 且 ak>0.N 被称为一个回文数,当且仅当对所有 i 有 ai=ak−i ...
- PAT 1079. 延迟的回文数
PAT 1079. 延迟的回文数 给定一个 k+1 位的正整数 N,写成 ak...a1a0 的形式,其中对所有 i 有 0 <= ai < 10 且 ak > 0.N 被称为一个回 ...
- PAT 1079 延迟的回文数(代码+思路)
1079 延迟的回文数(20 分) 给定一个 k+1 位的正整数 N,写成 ak⋯a1a0 的形式,其中对所有 i 有 0≤ai<10 且 ak>0.N 被称 ...
- 【PAT】B1079 延迟的回文数(20 分)
用了柳婼大佬博客的思路,但实现有不同 没有用string所以要考虑字符串末尾的'\0' 用的stl中的reverse逆置字符串 #include<stdio.h> #include< ...
- P1079 延迟的回文数
P1079 延迟的回文数 转跳点:
- PAT (Advanced Level) Practice 1019 General Palindromic Number (20 分) (进制转换,回文数)
A number that will be the same when it is written forwards or backwards is known as a Palindromic Nu ...
- hdu1282回文数猜想
Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其 ...
- C语言 · 特殊回文数
问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n . 输入格式 输入一行,包含一个正整数n. 输 ...
随机推荐
- 关于密码重用参数PASSWORD_REUSE_TIME,PASSWORD_REUSE_MAX之间的关系及其演示
转自: https://blog.51cto.com/carefree/1382811 测试环境:10.2.0.2.0测试用户:SCOTT测试用的三组密码:oracle1 oracle2 oracle ...
- hook cookie
// ==UserScript== // @name cookie // @namespace http://tampermonkey.net/ // @version 0.1 // @descrip ...
- 02_02Session中Config的参数设置
import tensorflow as tfimport numpy as np # todo 学习 Session中的参数Config=tf.ConfigProto()的使用.重点是GPU相关的参 ...
- 查看 systemctl 崩溃日志 及 运行日志
vi /var/log/syslog 查看指定服务的: grep "bx" /var/log/syslog
- VOT-2016 代码评测工具的使用说明
VOT-2016 代码评测工具的使用说明 2018-10-14 09:37:04 VOT-2016 官网:http://www.votchallenge.net/vot2016/ 评测代码链接:htt ...
- Qt Resource System Qt资源体系(qrc rcc)
Qt资源体系采用平台独立机制来存储应用程序执行时的二进制文件.这种机制在应用程序需要一些确定的文件(图标.翻译文件等等)而且又不想冒丢失文件的风险时是有用的. 资源体系依赖于 qmake, rcc ( ...
- Comparison and difference for Default geodatabase,Current workspace,Scratch workspace,Home Folder
Comparison and difference for Default geodatabase,Current workspace,Scratch workspace,Home Folder 商务 ...
- Hive的配置详解和日常维护
Hive的配置详解和日常维护 一.Hive的参数配置详解 1>.mapred.reduce.tasks 默认为-1.指定Hive作业的reduce task个数,如果保留默认值,则Hive 自 ...
- springMVC Controller 参数映射
springMVC 对参数为null或参数不为null的处理 - 小浩子的博客 - CSDN博客https://blog.csdn.net/change_on/article/details/7664 ...
- leetcode 874. Walking Robot Simulation
874. Walking Robot Simulation https://www.cnblogs.com/grandyang/p/10800993.html 每走一步(不是没走commands里的一 ...