且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

[华为机试练习题]30.计算整数的位数

更新时间:2021-11-24 00:01:05

题目

描述:  
    输入一个五位以内(包括5位)的正整数,(1)判断它是一个几位数;(2)逆序输出其各位数字。
题目类别:  位运算  
难度:  初级  
运行时间限制: 10Sec 
内存限制: 128MByte 
阶段:  入职前练习  
输入:  
多组数据,每组一行
输出:  
对应一行输出
样例输入: 56439             
样例输出: 5 93465

代码

/*---------------------------------------
*   日期:2015-07-01
*   作者:SJF0115
*   题目:计算整数的位数
*   来源:华为上机
-----------------------------------------*/
#include <iostream>
#include <vector>
#include <list>
using namespace std;

void ReverseAndCount(int n){
    if(n <= 0){
        return;
    }//if
    int count = 0;
    int tmp = n;
    vector<int> rev;
    while(tmp){
        rev.push_back(tmp % 10);
        tmp /= 10;
        ++count;
    }//while
    cout<<count<<" ";
    int size = rev.size();
    for(int i = 0;i < size;++i){
        cout<<rev[i];
    }//for
    cout<<endl;
}


int main(){
    int n;
    while(cin>>n){
        ReverseAndCount(n);
    }//while
    return 0;
}