欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PAT甲级1019 General Palindromic Number (20分)|C++实现

程序员文章站 2022-06-07 14:11:53
...

一、题目描述

PAT甲级1019 General Palindromic Number (20分)|C++实现

Input Specification:

PAT甲级1019 General Palindromic Number (20分)|C++实现

​​Output Specification:

PAT甲级1019 General Palindromic Number (20分)|C++实现

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

二、解题思路

这道题不难,考的也就只有数制转换。具体细节写在代码注释中了。

三、AC代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long LL;
const int maxn = 100010;
LL store[maxn] = {0};   //用于存放每一位的数
int main()
{
  LL n, d;
  scanf("%lld%lld", &n, &d);
  int digit = 0;    //标记位数
  if(n == 0)
    digit++;
  while(n != 0)
  {
    store[digit++] = n%d;
    n /= d;
  }
  bool flag = true; //标志是否为回文数
  for(LL i=0; i<digit; i++)
  {
    if(store[i] != store[digit-1-i])	//检验是否相等
    {
      flag = false;
      break;
    }
  }
  flag ? printf("Yes\n") : printf("No\n");
  for(LL i=digit-1; i>=0; i--)
  {
    if(i == digit-1)	printf("%lld", store[i]);
    else	printf(" %lld", store[i]);
  }
  return 0;
}
相关标签: PAT Advanced