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. css skeleton loading & skeleton components

    css skeleton loading css & :empty See the Pen Skeleton Screen with CSS by xgqfrms (@xgqfrms) on ...

  2. where is the storage location of the browser's HTTP cache? disk or memory

    where is the storage location of the browser's HTTP cache? disk or memory HTTP cache & storage l ...

  3. Netty & websockets

    Netty & websockets Netty is a non-blocking I/O client-server framework for the development of Ja ...

  4. GitHub & GitHub Package Registry

    GitHub & GitHub Package Registry npm https://github.blog/2019-05-10-introducing-github-package-r ...

  5. js {}与class属性描述符的区别

    let data = { name: "ajanuw", change() { this.name = "Ajanuw"; }, get message() { ...

  6. React Portal - 弹出层的优秀解决方案

    对于需要使用弹出层的需求 ,Portal可以说是提供了一种完美的解决方案.相比于React Native中的实现更多的使用Modal或者绝对定位,Portal实在是简易友好得多. 场景 对话框,确认提 ...

  7. Java对象内存布局

    本文转载自Java对象内存布局 导语 首先直接抛出问题 Unsafe.getInt(obj, fieldOffset)中的fieldOffset是什么, 类似还有compareAndSwapX(obj ...

  8. IO多路复用之select、poll、epoll

    本文转载自IO多路复用之select.poll.epoll 导语 IO多路复用:通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作. ...

  9. 图片居中的flex实现

    文本居中 text-align:center; 如果是图片放在div中,就没办法了.用flex可以很简单实现. display: flex; justify-content: center; /* 图 ...

  10. 总结 接口 final关键字 abstract关键字 static 关键字

    final关键字: * final 修饰的方法能被继承 不能被重写 * final修饰的类不能被继承 * final 修饰的变量(基本类型)不能被修改 * final 修饰的成员变量必须初始化 局部变 ...