PAT_甲级_1019 General Palindromic Number (20分) (C++)【签到题】

目录

1,题目描述

题目大意

输入

输出

2,思路

3,代码


1,题目描述

Sample Input 1:

27 2

Sample Output 1:

Yes
1 1 0 1 1

题目大意

将一个十进制数按照给定的进制转换后,判断是否回文数。

输入

十进制数(<=10^9),进制(<=10^9)

输出

第一行:Yes/No

第二行:原数在相应进制下对应的数

2,思路

除基取余,注意输入为0的情况就行了;

3,代码

#include<iostream>
#include<stdio.h>
#include<vector>
#include<map>
#include<algorithm>
using namespace std;

vector<int> convert(int num, int radix){
    vector<int> res;
    if(num == 0){
        res.push_back(0);
    }
    while(num > 0){
        res.push_back(num % radix);
        num /= radix;
    }
    return res;
}

int main(){
//#ifdef ONLINE_JUDGE
//#else
//    freopen("1.txt", "r", stdin);
//#endif

    int num, radix;
    cin>>num>>radix;

    vector<int> res = convert(num, radix);
    int i = 0, j = res.size() - 1;
    while(i < j && res[i] == res[j]){
        i++;j--;
    }
    if(i >= j) cout<<"Yes"<<endl;
    else cout<<"No"<<endl;

    cout<<res[res.size()-1];
    for(int k = res.size() - 2; k >= 0; k--) cout<<' '<<res[k];

}
发布了45 篇原创文章 · 获赞 5 · 访问量 2182

猜你喜欢

转载自blog.csdn.net/qq_41528502/article/details/104267492