关闭

PAT 甲级 1024 Palindromic Number

标签: PAT1024Palindromic Number
173人阅读 评论(0) 收藏 举报
分类:

1024. Palindromic Number (25)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue

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
由于数字会超longlong int 所以用数组
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
#include <math.h>
#include <stdio.h>
#include <map>
#include <string>

using namespace std;
typedef long long int LL;
char b[20005];
int a[20005];
int c[20005];
int k;
int len;
int add()
{
  int i=0;
  int j=0;
  int num=0;
  while((i<len&&j<len)||num!=0)
  {
    a[i]=(a[i]+c[j]+num);
    num=a[i]/10;
    a[i]%=10;
    i++;
    j++;
  }
  return i;
}
void fun()
{
  int cnt=0;
  for(int i=len-1;i>=0;i--)
    c[cnt++]=a[i];
}
int judge()
{
  int i=0;int j=len-1;
  while(i<=j)
  {
    if(a[i]!=a[j])
      return 0;
    i++,j--;
  }
  return 1;
}
void output(int x)
{
  for(int i=len-1;i>=0;i--)
    printf("%d",a[i]);
  cout<<endl;
  cout<<x<<endl;
}
int main()
{
  scanf("%s",b);
  scanf("%d",&k);
  int l=strlen(b);
  len=l;
  for(int i=0;i<len;i++)
    a[i]=b[i]-'0';
  if(judge())
  {
    output(0);
    return 0;
  }

  for(int i=1;i<=k;i++)
  {
    fun();
    len=add();
    if(judge())
    {
      output(i);
      return 0;
    }
  }
  output(k);
  return 0;
}


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

PAT程序设计练习——甲级1002(两个多项式的解析与合并)

PAT程序设计能力测试 题目原文链接:点击打开链接 翻译题目要求: 程序输入为两行:均为一个多项式,按 K N1 An1 N2 An2 ......Nk Ank,K代表的是多项式的非零项数,范围闭区...
  • xexiyong
  • xexiyong
  • 2015-12-14 13:18
  • 1078

PAT 1003. Emergency (25) (求两点间最短路的条数)

1003. Emergency (25) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 ...
  • IAccepted
  • IAccepted
  • 2014-03-18 12:19
  • 7767

浙大PAT考试1013~1016(最伤的一次。。)

我能说我1016WA了几天都不得最后还是拿别人代码交的么。。。 真心找不到那个神数据。。。 自己把整个程序的流程都画出来了,仔细推敲是木有问题的啊。。。 题目地址:http://pat.zju...
  • opm777
  • opm777
  • 2014-06-29 23:40
  • 2031

PAT 甲级 1024. Palindromic Number(大整数相加的回文数字)

原题传送门 long int类型的最大值是2147483647,当一个10^10的数连续加两次就超过了范围,所以这是大整数相加问题。 对string类型翻转用reverse() // 注意stri...
  • chao2016
  • chao2016
  • 2017-06-16 23:17
  • 70

1024. Palindromic Number (25)-PAT甲级真题(大整数相加)

1024. Palindromic Number (25) A number that will be the same when it is written forwards or backwar...
  • liuchuo
  • liuchuo
  • 2016-08-22 22:05
  • 241

PAT 甲级 1019. General Palindromic Number

原题传送门 进制转换 两个int数组的比较 #include using namespace std;int b[100] = {0}; int digit_count = 0; int c[100...
  • chao2016
  • chao2016
  • 2017-06-11 21:36
  • 84

浙江大学PAT_甲级_1019. General Palindromic Number (20)

C++ stack vector
  • pythontojava
  • pythontojava
  • 2015-06-17 14:09
  • 409

PAT 甲级 1019 General Palindromic Number(简单题)

PAT 甲级 1019 General Palindromic Number(简单题)
  • Dacc123
  • Dacc123
  • 2016-05-30 17:50
  • 280

【PAT】1024. Palindromic Number (25)

1、题目地址:http://www.patest.cn/contests/pat-a-practise/10242、分析在做这答题的过程中很可能出现下面的思路:#include "stdio.h" l...
  • hanhanhanhuanghe
  • hanhanhanhuanghe
  • 2015-03-07 23:11
  • 184

PAT A 1024. Palindromic Number (25)

题目
  • xyzchenzd
  • xyzchenzd
  • 2014-05-09 16:32
  • 365
    个人资料
    • 访问:120785次
    • 积分:4558
    • 等级:
    • 排名:第7499名
    • 原创:349篇
    • 转载:0篇
    • 译文:0篇
    • 评论:7条
    最新评论