题解 | #计算整数位数#

计算整数位数

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

题意整理

  • 输入一个整数。
  • 计算对应的位数。

方法一(循环)

1.解题思路

  • 定义一个位数变量,记录对应位数变化。
  • 使用一个while循环,只要num大于0,则位数加一,同时num除10,表示消耗掉最低位。

动图展示: alt

2.代码实现

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();

        //如果小于等于0,直接输出
        if(num<=0){
            System.out.println(num);
        }
        //记录整数位数
        int cnt=0;
        while(num>0){
            //每消耗一个位置,位数加一
            cnt++;
            num/=10;
        }
        System.out.println(cnt);

    }

}

3.复杂度分析

  • 时间复杂度:假设输入的数是n,总共需要循环log10nlog_{10}n,所以时间复杂度为O(log10n)O(log_{10}n)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)
xqxls的题解 文章被收录于专栏

牛客题解

全部评论
有两个print明显为负数时,会输出两次,例如-2输出-2和0
1 回复 分享
发布于 2023-08-16 22:03 湖北
在第一个print后用return返回,直接跳出方法,后面的print就不会继续执行了
点赞 回复 分享
发布于 2023-10-13 10:20 广东

相关推荐

点赞 评论 收藏
分享
8 收藏 评论
分享
牛客网
牛客企业服务