考察回文以及任意进制数的转化
#include<iostream>
#include<vector>
void GetReverseNumberBaseD(int N, int D, std::vector<int>& a)
{
do
{
int temp = N%D;
a.push_back(temp);
N /= D;
}while(N != 0);
}
bool IsPalindromic(const std::vector<int>& a)
{
int len = (int)a.size();
for(int i = 0; i < len; ++i)
{
if(a[i] != a[len-1-i])
return false;
}
return true;
}
void ReverseOutput(const std::vector<int>& a)
{
int len = (int)a.size();
for(int i = len-1; i >= 0; --i)
{
if(i != 0)
printf("%d ",a[i]);
else
printf("%d\n",a[i]);
}
}
int main()
{
int N, D;
while(scanf("%d%d",&N,&D) != EOF)
{
std::vector<int> reverseNumBaseD;
GetReverseNumberBaseD(N, D, reverseNumBaseD);
if( IsPalindromic(reverseNumBaseD) )
{
printf("Yes\n");
}
else printf("No\n");
ReverseOutput(reverseNumBaseD);
}
return 0;
}

本文深入探讨了将整数从任意进制转换为十进制的过程,并通过实例展示了如何判断得到的数字是否为回文数。通过编程实现,详细解释了回文数的概念以及在不同进制下的表现形式。
1682

被折叠的 条评论
为什么被折叠?



