0
点赞
收藏
分享

微信扫一扫

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


目录

​​1,题目描述​​

​​题目大意​​

​​输入​​

​​输出​​

​​2,思路​​

​​3,代码​​

1,题目描述

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

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];

}

 

举报

相关推荐

0 条评论