PAT A1019 General Palindromic Number

前言

传送门

正文


思路

题目意思就是判断将十进制数N转换为b进制数后是否为回文数 ,按部就班即可

参考题解

#include<iostream>
#include<vector>
using namespace std;
/*
题目意思就是判断将十进制数N转换为b进制数后是否为回文数 ,需要注意的是输出的时候记得逆序输出,
因为数组低位存的是b进制数的低位,也可以使用algorithm头文件中的reverse()函数,直接reverse(v.begin(),v.end())将vector进行倒置再顺序输出
*/
bool check(vector<int> arr,int len){
	for(int i=0;i<=len/2;i++){
		if(arr[i]!=arr[len-1-i]){
			return false;
		}
	}
	return true;
}
int main(){
	int  N,b,len;
	vector <int> v;
	cin>>N>>b;
	//将十进制数N转换为b进制数 ,除基取余法
	do{
		int temp=N%b;
		v.push_back(temp);
		N/=b;
	}while(N!=0);
	len=v.size();
	//判定
	if(check(v,len))cout<<"Yes"<<endl;
	else cout<<"No"<<endl; 
	//逆序输出 
	for(int i=len-1;i>=0;i--){
		if(i==len-1)cout<<v[i];
		else cout<<" "<<v[i];
	}
	cout<<endl;
	return 0;
}
全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务