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

题目

描述:
    输入一个五位以内(包括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;
}
时间: 2024-10-22 02:12:21

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

[华为机试练习题]46.计算二进制数的0的个数

题目 描述: 输入一个10进制数字,请计算该数字对应二进制中0的个数,注意左数第一个1之前的所有0都不需要计算.不需要考虑负数的情况. 题目类别: 位运算 难度: 初级 运行时间限制: 无限制 内存限制: 无限制 阶段: 入职前练习 输入: 要计算的十进制非负数 输出: 二进制中第一个1之后0 的个数 样例输入: 2 样例输出: 1 代码 /*--------------------------------------- * 日期:2015-07-03 * 作者:SJF0115 * 题目:计算二

[华为机试练习题]52.Fibonacci数列的计算和转换

题目 描述: 介绍: 一.Fibonacci数列: 1,1,2,3,5,8,13,15,28,- 它们有这样的规律:第1和第2的数字都是1,第3个数字是前2个数字之和,第4个数字是第2,第3个数字之和. 即Fn = F(n-1) + F(n-2). 二.扩展Fibonacci数列: 扩展Fibonacci数列,前2个数字可以任意输入,例如前2个数字为 -1,1,那么后续的数字就是:0,1,1,2,3,5,8,- 题目要求: 一.请实现如下函数功能: 输入扩展Fibanacci数列的前2个数字和要

[华为机试练习题]53.整数相除(AC 但还有bug)

题目 描述: 实现接口: /--------------------------------------------------------------------------------- Description : 整数相除. Input : unsigned int dividend :被除数,取值为无符号整数. unsigned int divisor: 除数,取值为无符号整数. Output : Char *pResult : 运算结果. Return Value : 0:成功: -1

[华为机试练习题]41.取给定正整数的指定bit位开始的指定长度的数据

题目 描述: 接口说明 原型: unsigned int GetBitsValue(unsigned int input, unsigned int startbit, unsigned int bitlen) 输入参数: input 输入的整数 startbit 需要获取的开始bit bitlen 需要获取的bit长度 输出参数(指针指向的内存区域保证有效): 无 返回值: 对应的bit取值 举例: 输入:4, 2, 2 返回:2 4对应的二进制为100(bit0和bit1为0,bit2为1)

[华为机试练习题]37.合唱队

题目 描述: 计算最少出列多少位同学,使得剩下的同学排成合唱队形 说明: N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2-,K,他们的身高分别为T1,T2,-,TK, 则他们的身高满足存在i(1<=i<=K)使得T1 < T2 <...... < Ti-1 < Ti >Ti+1 >......>TK. 你的任务是,已知所有N位同学的身高,计算最少

[华为机试练习题]38.名字的漂亮度

题目 描述: 给出一个名字,该名字有26个字符串组成,定义这个字符串的"漂亮度"是其所有字母"漂亮度"的总和. 每个字母都有一个"漂亮度",范围在1到26之间.没有任何两个字母拥有相同的"漂亮度".字母忽略大小写. 给出多个名字,计算每个名字最大可能的"漂亮度". 题目类别: 字符串 难度: 初级 运行时间限制: 无限制 内存限制: 无限制 阶段: 入职前练习 输入: 整数N,后续N个名字 N个字符串,每个

[华为机试练习题]29.Arrange an Array to Form a Smallest Digit

题目 描述: Question: Input an array of positive integers, arrange the integers to form new digits, and output the smallest digit among all the new ones. Input Example 1: {2, 1} Output Example 1: 12 Input Example 2: {32, 321} Output Example 2: 32132 Input

[华为机试练习题]39.尼科彻斯定理

题目 描述: 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和. 例如: 1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19 题目类别: 循环 难度: 初级 运行时间限制: 无限制 内存限制: 无限制 阶段: 入职前练习 输入: 整数m(取值范围:1-100) 输出: 尼科彻斯定理成立,输出m个连续奇数(格式:"7+9+11"):否则输出-1 样例输入: 3 样例输出: 7+9+11 代码 /*---------------------

[华为机试练习题]44.24点游戏算法

题目 注意: 6 + 2 * 4 + 10 = 24 不是一个数字一个数字的计算 代码 /*--------------------------------------- * 日期:2015-07-03 * 作者:SJF0115 * 题目:24点游戏算法 * 来源:华为机试练习题 -----------------------------------------*/ #include <iostream> #include <string> #include <vector&