题解 | #计算整数位数#

计算整数位数

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 广东

相关推荐

2025-12-06 16:17
济宁学院 Java
点赞 评论 收藏
分享
2025-11-28 11:13
门头沟学院 游戏策划
真顶不住了兄弟们…11&nbsp;月底了,秋招投了仨月,还是&nbsp;0offer,纯纯陪跑选手。从&nbsp;8&nbsp;月底就开始瞎忙活,前俩月还会为了面试挂掉崩溃到睡不着,现在心里早就没波澜了,跟一潭死水似的。不知道从啥时候起,也不焦虑了,就剩摆烂和逃避现实&nbsp;——&nbsp;简历不想改,面试题不想刷,连打开招聘软件的劲儿都没了。中间撑着我往下走的,其实是那点自我安慰:每次收到面试邀约,都告诉自己&nbsp;“挂了也没事,就当练手”,好歹能趁着准备的功夫捋捋项目逻辑,优化下面试话术,只要有进步,总能撞上一个机会。说实话也确实有点变化,从一开始一面就凉,到后来能冲进二面、三面,我还以为事情在往好的方向走…&nbsp;结果后面零星几个面试,又是一面挂、二面挂,无限循环。原来我以为的&nbsp;“进步”,根本就是自我感动的幻觉,说白了就是原地踏步。我到底收获啥了?面试还是那么拉胯,花了无数时间准备材料、练话术、做&nbsp;PPT,到最后连展示的机会都没有,每次都是不明不白被拒,纯属瞎忙活。现在彻底没面试邀约了,希望没了,动力也泄了,只剩下迷茫、麻木,还有点面试&nbsp;PTSD——&nbsp;一想到要面试就犯怵。我承认自己可能不够努力,但每次有机会的时候,我是真的拼尽全力去准备了啊。我还想再挣扎一下,还不想就这么放弃,但现在是真的没头绪了…&nbsp;到底还能做点啥,才能把这秋招的烂摊子盘活啊?
牛客77447303...:老哥没事,我去年双非硕没找到,今年毕业后这个月才接着找,半个月就找到了,给我的感觉就是企业都是需要尽快入职的(至少小企业是这样)。所以不要慌,毕业后社招也许能更快找到工作。
十一月总结
点赞 评论 收藏
分享
评论
9
收藏
分享

创作者周榜

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