题解 | #计算整数位数#

计算整数位数

http://www.nowcoder.com/practice/07232b8720614f7ea185391d1a7206eb

题目的主要信息:

  • 输入一个十进制整数,计算它的位数
  • 如果输入的整数不大于0则输出这个数

具体做法:

我们先用if语句判断输入这个数是否大于0,如果否则输出这个数,如果是我们才对它计算位数。

计算十进制数的位数,我们用连除法,每次除以10,除掉这个数的最后一位,然后统计一次直到为0.

alt

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt();
        scan.close();
        if(num <= 0) //先判断是否小于等于0
            System.out.println(num);
        else{
            int count = 0; //记录位数
            while(num > 0){ //每次除10除掉最后一位,统计1次,直到为0
                count++;
                num /= 10;
            }
            System.out.println(count);
        }
    }

}

复杂度分析:

  • 时间复杂度:O(log10n)O(log_{10}n),使用连除法循环次数为这个数的log级
  • 空间复杂度:O(1)O(1),无额外空间
孤帆远影碧空尽 文章被收录于专栏

牛客网各类题单题解~

全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务