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

1019. General Palindromic Number (20)

时间限制

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.

Although palindromic numbers are most often considered in the decimal system, the concept of palindromicity can be applied to the natural numbers in any numeral system. Consider a number N > 0 in base b >= 2, where it is written in standard notation with k+1 digits ai as the sum of (aibi) for i from 0 to k. Here, as usual, 0 <= ai < b for all i and ak is non-zero. Then N is palindromic if and only if ai = ak-i for all i. Zero is written 0 in any base and is also palindromic by definition.

Given any non-negative decimal integer N and a base b, you are supposed to tell if N is a palindromic number in base b.

Input Specification:

Each input file contains one test case. Each case consists of two non-negative numbers N and b, where 0 <= N <= 109 is the decimal number and 2 <= b <= 109 is the base. The numbers are separated by a space.

Output Specification:

For each test case, first print in one line "Yes" if N is a palindromic number in base b, or "No" if not. Then in the next line, print N as the number in base b in the form "ak ak-1 ... a0". Notice that there must be no extra space at the end of output.

Sample Input 1:

27 2

Sample Output 1:

Yes
1 1 0 1 1

Sample Input 2:

121 5

Sample Output 2:

No
4 4 1
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
#include <stdio.h>
#include <math.h>

using namespace std;
int n,b;
int a[10005];
int cnt;
void dfs(int n,int b)
{
  if(n<b)
  {
    a[cnt++]=n;
    return;
  }
  dfs(n/b,b);
  a[cnt++]=n%b;
}
int main()
{
  while(scanf("%d%d",&n,&b)!=EOF)
  {
    cnt=0;
    dfs(n,b);
    int i=0,j=cnt-1;
    int ans=0;
    while(i<=j)
    {
           if(a[i]!=a[j])
       {
         ans=-1;
         break;
       }
       i++,j--;
    }
    if(ans==-1)
      printf("No\n");
    else
      printf("Yes\n");
    for(int i=0;i<cnt;i++)
    {
      if(i==cnt-1)
        printf("%d\n",a[i]);
      else
          printf("%d ",a[i]);
    }
    
  }
  return 0;

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ZKEASOFT

.Net Core在Middleware中解析RouteData

在ASP.Net Core中,如果直接在Middleware中获取RouteData返回的是空值,这是因为RouterMiddleware还没执行。但有些情况下...

1763
来自专栏菩提树下的杨过

ExtJs学习笔记(22)-XTemplate + WCF 打造无刷新数据分页

ExtJs的Grid组件虽然不管从哪一方面来讲,都称得上是很好很强大,但是总会有一些应用场景并不需要这么多功能,比如网站的留言列表,开发者只想要一个简单的<li...

2325
来自专栏大内老A

事件(Event),绝大多数内存泄漏(Memory Leak)的元凶[上篇]

最近这两天一直在忙着为一个项目检查内存泄漏(Memory Leak)的问题,对相关的知识进行了一下简单的学习和探索,其间也有了一些粗浅的经验积累,今天特意写一篇...

2456
来自专栏NetCore

ADO.NET 2.0 中的新增 DataSet 功能

ADO.NET 2.0 中的新增 DataSet 功能 发布日期: 1/13/2005 | 更新日期: 1/13/2005 Jackie Goldstein ...

18810
来自专栏张善友的专栏

在asp.net页面上得到Castle容器的实例

在项目中使用Castle IOC容器,Asp.net程序中如何得到Castle容器内。 可以如下实现: 1、Gloabal实现接口IContainerAcces...

20710
来自专栏一个爱瞎折腾的程序猿

.net core建站踩坑记录

services.AddOptions(); services.Configure<AppSettings>(Configuration...

3362
来自专栏me的随笔

.NET Core 读取配置文件

前面写过一篇《.NET Core类库中读取配置文件》 ,当时对于.NET Core读取配置文件了解有限,这里做下补充:

4972
来自专栏张善友的专栏

带实例数据的和动手实验室的Visual Studio 2010 RC 虚拟机下载

微软已经提供了带实例数据的和动手实验室的Visual Studio 2010 RC 虚拟机,这对用于评估和学习使用是个非常不错的资源,虚拟机里头带了一个简单的A...

1868
来自专栏跟着阿笨一起玩NET

VS2010在C#头文件中添加文件注释的方法

1.VS2010 中找到安装盘符(本人安装目录在D盘,所以以D盘为例)D:\Program Files (x86)\Microsoft Visual Studi...

991
来自专栏一个爱瞎折腾的程序猿

mvc网站迁移.net core记录

ConfigureServices方法中配置即可,详情见院长文章 http://www.cnblogs.com/dudu/p/5879913.html

1511

扫码关注云+社区

领取腾讯云代金券