目录
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];
}