PAT (Advanced Level) Practice 1019 General Palindromic Number (20 分) 凌宸1642

题目描述:

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 ∑ki=0(aibi). 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 positive decimal integer N and a base b, you are supposed to tell if N is a palindromic number in base b.

译: 向前或向后书写都是相同的数称为回文数 。例如 1234321 就是一个回文数。所有的单个数字的数都是回文数。

虽然回文数在十进制系统中考虑的最多,但是回文数的概念可以应用到任意自然数数字系统中。考虑一个数 N > 0 在进制 b ≥ 2 ,被写成如 ∑ki=0(aibi) 这样的标准记录。这里,通常对于所有的 i 有 0 ≤ ai < b 并且 ak 是非零的。当且仅当 对所有的 i 都有ai = ak-i 。 0 在任意进制中都写成 0 并且是一个回文数。

现在给你任意十进制整数 N 和进制 b ,你应该说明 N 是否是 b 进制下的一个回文数。


Input Specification (输入说明):

Each input file contains one test case. Each case consists of two positive 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.

译:每个输入文件包含一个测试用例,每个用例包含两个正整数 Nb 是十进制下的数字 0<N≤109 2≤b≤109。数字间用空格分隔。


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.

译:对于每个测试用例,在一行中输出,如果 Nb 数制下的回文数输出 Yes 否则输出 No。接下来的一行,用格式"ak ak -1 ... a0 " 输出 N 在 b 进制下的数字。注意 行末没有多与的空格。


Sample Input 1 (样例输入1):

27 2

Sample Output 1 (样例输出1):

Yes
1 1 0 1 1

Sample Input 2 (样例输入2):

121 5

Sample Output 2 (样例输出2):

No
4 4 1

The Idea:

涉及到回文数,首先将数字 N 转为 b 进制下的数字存入数组中,然后再根据题目意思 判断 ai = ak-i 。如果有不满足的,令标致为 false 并退出循环。最后根据 flag 的值输出 Yes or No ,再输出 b 进制下的 N .


The Codes:

#include<bits/stdc++.h>
using namespace std;
//string str = "";
int base[32] ;
int main(){
int n , b , t , cnt = 0 , flag = 1 ;
cin >> n >> b ;
while(n){
base[cnt ++] = n % b ; // 取余
n /= b ;
}
for(int i = 0 ; i < cnt ; i ++){
if(base[i] != base[cnt - i - 1]){
flag = 0 ;
break ;
}
}
printf((flag?"Yes\n":"No\n")); // 输出是否是一个回文数
for(int i = cnt - 1 ; i >= 0 ; i --)
printf("%d%c",base[i] , (i == 0 )?'\n':' ');
return 0;
}

PAT (Advanced Level) Practice 1019 General Palindromic Number (20 分) 凌宸1642的更多相关文章

  1. PAT (Advanced Level) Practice 1019 General Palindromic Number (20 分) (进制转换,回文数)

    A number that will be the same when it is written forwards or backwards is known as a Palindromic Nu ...

  2. PAT (Advanced Level) Practice 1027 Colors in Mars (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1027 Colors in Mars (20 分) 凌宸1642 题目描述: People in Mars represent the c ...

  3. PAT (Advanced Level) Practice 1011 World Cup Betting (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1011 World Cup Betting (20 分) 凌宸1642 题目描述: With the 2010 FIFA World Cu ...

  4. PAT (Advanced Level) Practice 1005 Spell It Right (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1005 Spell It Right (20 分) 凌宸1642 题目描述: Given a non-negative integer N ...

  5. PAT (Advanced Level) Practice 1001 A+B Format (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1001 A+B Format (20 分) 凌宸1642 题目描述: Calculate a+b and output the sum i ...

  6. PAT Advanced 1019 General Palindromic Number (20 分)

    A number that will be the same when it is written forwards or backwards is known as a Palindromic Nu ...

  7. 1019 General Palindromic Number (20 分)

    A number that will be the same when it is written forwards or backwards is known as a Palindromic Nu ...

  8. PAT甲题题解-1019. General Palindromic Number (20)-又是水题一枚

    n转化为b进制的格式,问你该格式是否为回文数字(即正着写和倒着写一样)输出Yes或者No并且输出该格式又是水题... #include <iostream> #include <cs ...

  9. 【PAT甲级】1019 General Palindromic Number (20 分)

    题意: 输入两个正整数n和b(n<=1e9,2<=b<=1e9),分别表示数字的大小和进制大小,求在b进制下n是否是一个回文串,输出“Yes”or“No”,并将数字n在b进制下打印出 ...

随机推荐

  1. vue & vue router & match bug

    vue & vue router & match bug match bugs solution name must be router https://stackoverflow.c ...

  2. IndexedDB All In One

    IndexedDB All In One https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API https://develope ...

  3. html 布局,上下各100px,中间自适应

    flex <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  4. 新年狂欢高倍币,1万枚VAST拿到手软

    新一年NGK推出了新币VAST,成为了当前最瞩目的一颗星.有人认为VAST有价无市,有人认为VAST价值巨大,潜力无限.总之,众说风云! 选择数字货币,当然是挑选有价值的货币,从内外价值入手. 一.币 ...

  5. ECMAScript 等性运算符

    判断两个变量是否相等是程序设计中非常重要的运算.在处理原始值时,这种运算相当简单,但涉及对象,任务就稍有点复杂. ECMAScript 提供了两套等性运算符:等号和非等号用于处理原始值,全等号和非全等 ...

  6. 谈一下hashMap中put是如何实现的?

    源码: Hash(key):计算出key的hash值. put方法详解: 1.如果table数组为null或者table数组的长度为0,则调用resize()方法扩容并返回table数组.数组的长度为 ...

  7. 使用PageHelper进行分页查询

    service层代码: public Result getDataSetList(String dataCode, String dataName, int pageIndex, int length ...

  8. eclipse安装mybatis的插件

    在help中打开Eclipse Marketplace... 输入mybatis后搜索,点击install即可 功能说明: 1.查找某一个方法 在dao接口中 按住Ctrl键,鼠标指到方法名称上 选择 ...

  9. 搭载华为麒麟9000的Mate X2:秒售罄,一机难求

    本文首发 | 公众号:lunvey 昨日10点,搭载了麒麟9000芯片的华为Mate X2正式开售,定价17999,对于手机来说,价格实在是高昂. 虽然价格高昂,但是一分钱一分货,对于想抢先体验的网友 ...

  10. Win命令行切换Python版本

    目录 安装2.x 和 3.x 的python 设置系统环境变量 pip的使用 参考 安装2.x 和 3.x 的python 我这里使用anaconda来安装两个版本的python包. conda cr ...