A题笔记(10)
No.1390 代码:https://code.csdn.net/snippets/191965 另一版本:https://code.csdn.net/snippets/192009
考察点有两个:①将一个数转换为指定进制的数 ②判断是否为回文数
vector<char> num; num.insert(num.begin(), j);
向 vector 的指定位置插入元素,对于 vector 它不像 list 和 deque 可以调用 num.push_front(j) 来向队列最前端插入元素,因而只能使用 num.insert()。
对于10进制以上的进制,当某一位的数字大于等于10之后,就需要将其转换成 ‘A’ ‘B’ ‘C’.......来表示。
if(i<10) j=(char)(i+48); else j=(char)(i+55);
实现原理是将数字通过加法变成 ASCII 中的对应的编号,然后再转换成字符。
vector 类型无法直接输出,不妨将他转化成 string 型。
string vectorTostring(vector<char> num) { vector<char>::iterator a; string s; for(a=num.begin(); a<num.end(); a++) s+=*a; return s; }