pat 1136 A Delayed Palindrome(20 分)

1136 A Delayed Palindrome(20 分)

Consider a positive integer N written in standard notation with k+1 digits a?i?? as a?k???a?1??a?0?? with 0≤a?i??<10 for all i and a?k??>0. Then N is palindromic if and only if a?i??=a?k?i?? for all i. Zero is written 0 and is also palindromic by definition.

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. Such number is called a delayed palindrome. (Quoted from https://en.wikipedia.org/wiki/Palindromic_number )

Given any positive integer, you are supposed to find its paired palindromic number.

Input Specification:

Each input file contains one test case which gives a positive integer no more than 1000 digits.

Output Specification:

For each test case, print line by line the process of finding the palindromic number. The format of each line is the following:

A + B = C

where A is the original number, B is the reversed A, and C is their sum. A starts being the input number, and this process ends until C becomes a palindromic number -- in this case we print in the last line C is a palindromic number.; or if a palindromic number cannot be found in 10 iterations, print Not found in 10 iterations. instead.

Sample Input 1:

97152

Sample Output 1:

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

Sample Input 2:

196

Sample Output 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.
 1 #include <map>
 2 #include <set>
 3 #include <queue>
 4 #include <cmath>
 5 #include <stack>
 6 #include <vector>
 7 #include <string>
 8 #include <cstdio>
 9 #include <cstring>
10 #include <climits>
11 #include <iostream>
12 #include <algorithm>
13 #define wzf ((1 + sqrt(5.0)) / 2.0)
14 #define INF 0x3f3f3f3f
15 #define LL long long
16 using namespace std;
17
18 const int MAXN = 2e3 + 10;
19
20 char A[MAXN], B[MAXN], C[MAXN];
21
22 void calcB()
23 {
24     int len = strlen(A), a = len - 1, b = 0;
25         for (a ,b ; b < len; ++ b, -- a)
26             B[b] = A[a];
27 }
28
29 void calcC()
30 {
31     int len1 = strlen(A), len = len1, b = 0;
32     int temp[MAXN];
33     for (int i = 0, j = len1 - 1; i < len; ++ i, -- j)
34     {
35         if (j != -1) b += int(A[j] - ‘0‘) + int(B[j] - ‘0‘);
36         temp[i] = b % 10;
37         b /= 10;
38         if (i == len - 1 && b > 0) ++ len;
39     }
40
41     for (int i = 0, j = len - 1; i < len; ++ i, -- j)
42         C[i] = char (‘0‘ + temp[j]);
43 }
44
45 int main()
46 {
47     scanf("%s", &A);
48     int len = strlen(A), a = len - 1, b = 0;
49         for (a ,b ; b < len; ++ b, -- a)
50             B[b] = A[a];
51     for (int i = 0; ; ++ i)
52     {
53         if (i == 10)
54         {
55             printf("Not found in 10 iterations.\n");
56             break;
57         }
58         calcB();
59         if (strcmp(A, B) == 0)
60         {
61             printf("%s is a palindromic number.\n", A);
62             break;
63         }
64         calcC();
65         printf("%s + %s = %s\n", A, B, C);
66         strcpy(A, C);
67     }
68     return 0;
69 }

原文地址:https://www.cnblogs.com/GetcharZp/p/9580080.html

时间: 2024-10-09 11:55:58

pat 1136 A Delayed Palindrome(20 分)的相关文章

1136 A Delayed Palindrome (20 分)

1136 A Delayed Palindrome (20 分) Consider a positive integer N written in standard notation with k+1 digits a?i?? as a?k???a?1??a?0?? with 0 for all iand a?k??>0. Then N is palindromic if and only if a?i??=a?k−i?? for all i. Zero is written 0 and is

PAT Advanced 1136 A Delayed Palindrome (20分)

Consider a positive integer N written in standard notation with k+1 digits a?i?? as a?k???a?1??a?0?? with 0 for all i and a?k??>0. Then N is palindromic if and only if a?i??=a?k−i?? for all i. Zero is written 0 and is also palindromic by definition.

PAT 1136 A Delayed Palindrome[简单]

1136 A Delayed Palindrome (20 分) Consider a positive integer N written in standard notation with k+1 digits a?i?? as a?k???a?1??a?0?? with 0≤a?i??<10for all i and a?k??>0. Then N is palindromic if and only if a?i??=a?k?i?? for all i. Zero is written

1136 A Delayed Palindrome (20)

Consider a positive integer N written in standard notation with k+1 digits a~i~ as a~k~...a~1~a~0~ with 0 <= a~i~ < 10 for all i and a~k~ > 0. Then N is palindromic if and only if a~i~ = a~k-i~ for all i. Zero is written 0 and is also palindromic

pat 1136 A Delayed Palindrome

Consider a positive integer N written in standard notation with k+1 digits a?i?? as a?k???a?1??a?0?? with 0≤a?i??<10 for all i and a?k??>0. Then N is palindromic if and only if a?i??=a?k?i?? for all i. Zero is written 0 and is also palindromic by de

pat 1015 Reversible Primes(20 分)

1015 Reversible Primes(20 分) A reversible prime in any number system is a prime whose "reverse" in that number system is also a prime. For example in the decimal system 73 is a reversible prime because its reverse 37 is also a prime. Now given a

pat 1042 Shuffling Machine(20 分)

1042 Shuffling Machine(20 分) Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techniques are seen as weak, and in order to avoid "inside jobs" where employees collaborate with gamblers by performing

pat 1050 String Subtraction(20 分)

1050 String Subtraction(20 分) Given two strings S?1?? and S?2??, S=S?1???S?2?? is defined to be the remaining string after taking all the characters in S?2?? from S?1??. Your task is simply to calculate S?1???S?2?? for any given strings. However, it

pat 1041 Be Unique(20 分)

1041 Be Unique(20 分) Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1,10?4??]. The first one who bets on a unique number wins. For e