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; }

最新文章

  1. C# 原样复制excel工作表
  2. OAuth2学习及DotNetOpenAuth部分源码研究
  3. 区间DP HDU 2476
  4. OI分类
  5. 【转】 简单理解Socket
  6. 利用zip(或者phar)协议进行本地文件包含
  7. BAT-使用BAT方法删除目录下0KB文件
  8. Checbox的操作含已选、未选及判断代码
  9. JVM体系结构
  10. mysql命令行的基本用法
  11. 十、Hadoop学习笔记————Hive与Hbase以及RDBMS(关系型数据库)的关系
  12. &lt;jsp:useBean&gt;、&lt;jsp:setProperty&gt;与&lt;jsp:getProperty&gt;
  13. android TabLayout设置选中标签字体加粗功能
  14. 关于TCP窗口大小
  15. 查看mysql数据库体积
  16. ASP.NET MVC+HighCharts开发统计图表
  17. 单元测试系列之七:Sonar 数据库表关系整理一(rule相关)
  18. 如何用chrome查看post get及返回的数据
  19. Angular4.X 介绍
  20. 使用pymongo连接mongodb时报错:pymongo.errors.OperationFailure: not authorized

热门文章

  1. Lintcode---二叉树的层次遍历(原型)
  2. C# LDAP
  3. Atitit.执行cli&#160;cmd的原理与调试
  4. 热烈祝贺阿尔法Go首战告捷
  5. 547. Intersection of Two Arrays【easy】
  6. poj 1636 Prison rearrangement
  7. iOS图片上传及压缩
  8. CSRF学习笔记之CSRF的攻击与防御以及审计【00x3】
  9. Squares - poj 2002(hash)
  10. 几款 ping tcping 工具总结