PAT Niveau A 1019 Palindrome commun

Lien vers le titre original

Un nombre est un palindrome s'il se lit exactement de la même manière d'avant en arrière que d'arrière en avant.

Par exemple, 1234321 est un nombre palindromique.

Tous les chiffres simples sont des nombres palindromiques.

On pense généralement aux palindromes en décimal, mais le concept de palindromes peut aussi s'appliquer à des nombres dans d'autres bases.

Un entier N a un total de k+1 chiffres en base b, et le ième chiffre est ai, (0≤i≤k), alors N=∑ki=0(aibi).

En général, 0≤ai<b, et ak≠0.

Si ai=ak−i est satisfait pour tout i, alors N est un nombre palindromique en base b.

0 est représenté par 0 dans n'importe quelle base et est considéré comme un nombre palindrome.

Maintenant étant donné un entier N, veuillez juger s'il s'agit d'un palindrome en représentation b-aire.

Format d'entrée
Une ligne contient deux entiers N et b.

Format de sortie
La sortie se compose de deux lignes.

Si N est un palindrome en base b, la première ligne renvoie Oui, sinon renvoie Non.

La deuxième ligne sort la représentation de N en base b, y compris les entiers k + 1. Il est nécessaire de sortir ak, ak−1,...,a0 en séquence, et les entiers sont séparés par des espaces.

Plage de données
0≤N≤109,
2≤b≤109
Échantillon d'entrée 1 :
27 2
Échantillon de sortie 1 :
oui
1 1 0 1 1
Échantillon d'entrée 2 :
121 5
Échantillon de sortie 2 :
non
4 4 1

Ma soluce :

#include <bits/stdc++.h>
using namespace std;
const int N = 1e9 + 10;
int n, b;
vector<int> nums;
bool check(){
    for(int i = 0, j = nums.size() - 1; i < j; i ++, j --){
        if(nums[i] != nums[j]){
            return false;
        }
    }
    return true;
}
int main(){
    cin >> n >> b;
    if(!n) nums.push_back(0);
    while(n) nums.push_back(n%b), n/=b;
    if(check()) puts("Yes");
    else puts("No");
    cout << nums.back();
    for(int i = nums.size() - 2; i >= 0; i -- ) cout << " " << nums[i];
    return 0;
}

Je suppose que tu aimes

Origine blog.csdn.net/weixin_45660485/article/details/126066042
conseillé
Classement