无聊---交换一个大于10的数最高位和最低位

无聊---交换一个大于10的数最高位和最低位

没有技术性可言,就当是消遣一下吧。注意溢出。

#include <iostream>
#include <vector>

using namespace std;

// 交换一个大于10的数最高位和最低位
int ChangeBit(int &number)
{
    const int ten = 10;
    if (number < ten)
    {
        return number;
    }

    vector<int> ivec;
    while (number)
    {
        ivec.push_back(number % ten); // 拆分、存储
        number /= ten;
    }
    swap(ivec[ivec.size() - 1], ivec[0]); // 交换

    for (int i = ivec.size() - 1; i > -1; i--)
    {
        number += ivec[i];
        if (i != 0)
        number *= ten;
    }

    return number;
}

int main(int argc, char **argv)
{
    int num = 123456789;
    cout << num << endl;
    ChangeBit(num);
    cout << num << endl;

    return 0;
}

 

posted @ 2013-03-15 16:04  小楼一夜听风雨  阅读(338)  评论(0编辑  收藏  举报