前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何判断一个正整数是几位数

如何判断一个正整数是几位数

作者头像
沙漠尽头的狼
发布2023-12-13 10:32:55
1610
发布2023-12-13 10:32:55
举报
文章被收录于专栏:Dotnet9
  1. 用数学方法
代码语言:javascript
复制
int n = 74523434;
int digits = (int)Math.Floor(Math.Log10(n) + 1);
Trace.WriteLine(digits);

原因:

对于10进制的数来说,一个n位数的最小值是10的(n-1)次方,最大值是10的n次方减1。例如,一个3位数的最小值是100(即10的2次方),最大值是999(即10的3次方减1)。所以,如果我们有一个数x,我们可以通过计算10的对数来得到这个数的位数。如果x是一个n位数,那么10的对数的值应该在(n-1)到n之间。因此,我们可以通过取对数的地板值并加1来得到x的位数。

  1. 取余+除法运算
代码语言:javascript
复制
int n = 12345;
int digits = 0;
while (n != 0)
{
    n /= 10;
    digits++;
}
Console.WriteLine(digits);
  1. 转字符串
代码语言:javascript
复制
int n = 2321221;
int digits=n.ToString().Length;

总结:用数学取对数的方法性能最好,其次是转字符串,虽然中间涉及了封箱操作,最后是循环除法。

————————————————

版权声明:本文为CSDN博主「游子吟i」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/ftfmatlab/article/details/134284506

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Dotnet9 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档