1019. General Palindromic Number (20)

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 <stdio.h>

 int N2a(int*,int,int);
int isPalindromic(int *,int); int main()
{
int N,b;
int a[];
while(scanf("%d%d",&N,&b) != EOF){
int len = N2a(a,N,b);
int flag = isPalindromic(a,len);
if(flag)
printf("Yes\n");
else
printf("No\n");
int i;
if(len>)
printf("%d",a[len-]);
for(i=len-;i>=;--i){
printf(" %d",a[i]);
}
printf("\n");
}
return ;
} int N2a(int *a,int N,int base)
{
int i = ;
if(N < )
return -;
else if(N == ){
a[] = ;
return ;
}
while(N){
a[i++] = N % base;
N /= base;
}
return i;
} int isPalindromic(int *a,int len)
{
int i = ,n = len / ;
while(i < n){
if(a[i] != a[len - - i]){
return ;
}
++i;
}
return ;
}

最新文章

  1. Nexpose下载安装注册一条龙
  2. LuaAlchemy API 介绍
  3. phonegap 清空页面缓存
  4. change netbeans look and feel
  5. 在ECSHOP首页今日特价(促销商品)增加倒计时效果
  6. jquery.validate.js 无法验证隐藏域
  7. 手动添加git到目录右键菜单
  8. eclipse 构建 jpa project 所需的用户库(vendor: EclipseLink)
  9. Java 多线程重排序的探究
  10. CentOS6.5安装zookeeper-3.4.5(单机)
  11. C#什么时候需要使用构造函数
  12. 2018.12.17 bzoj4802: 欧拉函数(Pollard-rho)
  13. 20155326刘美岑 2016-2017-2 《Java程序设计》第二周学习总结
  14. django 使用celery 实现异步任务
  15. 未能在当前目标框架中解析主引用“System.Net.Http”,它是一个框架程序集。“.NETFramework,Version=v4.0”。若要解决此问题,请移除引用“System.Net.Http”,或将应用程序的目标重新指向包含“System.Net.Http”的框架版本。 Zephyr.Web
  16. 解决IE7下scroll的bug
  17. Python学习---Django路由系统【all】
  18. join 中的on和where的区别
  19. 类方法load和initialize的区别
  20. push an existing repository from the command line

热门文章

  1. bjfu1284 判别正则表达式
  2. 两段简单的JS代码防止SQL注入
  3. SQL遍历字符串的方法
  4. Hadoop MapReduce程序中解决第三方jar包问题方案
  5. Visual Studio 2013智能提示失效解决办法
  6. 51单片机或PLC驱动3.5寸至52寸的数字TFTLCD屏、VGA接口显示器、电视机
  7. POJ Wormholes (SPFA)
  8. Serializable 序列化使用限制
  9. MSSQL索引优化
  10. VS2015中DataGridView的DataGridViewComBoboxCell列值无效及数据绑定错误的解决方法