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;
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 条评论

相关文章

1763

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

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

2325

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

2456

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

18810

20710

3362

4972

1868

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 