进制转换 / 回文判断
作者:
自由基
,
2021-08-17 08:20:55
,
所有人可见
,
阅读 354
P进制转化为10进制
int y = 0, product = 1;
while( x != 0 ) {
y += ( x % 10 ) * product;
x /= 10;
product = product * P;
}
10进制转化为P进制
int res[40], num = 0;
do{
res[num++] = y % P;
y /= P;
}while(y);
// 返回x,大于10的用字母表示,看什么进制
char get(int x)
{
if (x <= 9) return x + '0';
return x - 10 + 'A';
}
string base(int n, int b)
{
string res;
while (n) {
res += get(n % b);
n /= b;
}
// 翻转变为从高位到低位
reverse(res.begin(), res.end());
return res;
}
使用:
string num = base(x, b);
回文判断
读入字符串:
bool check( string s ) {
for ( int i = 0, j = s.size()-1; i < j; i++, j-- ) {
if( s[i] != s[j] ) return false;
}
return true;
}
读入整数:(to_string的使用)
bool check(int x)
{
string s = to_string(x);
for (int i = 0, j = s.size() - 1; i < j; i ++, j -- )
if (s[i] != s[j])
return false;
return true;
}