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;
}

 

 

posted @ 2014-02-17 21:41  阿祖叔叔  阅读(179)  评论(0编辑  收藏  举报