swift - 计算给定数字中位数的基本代码,但它为什么有效?
问题描述
我写了这个函数,但是,虽然我很高兴它可以工作,但我似乎不明白为什么。
这个函数只是给我们传入的给定数字的位数。我的问题是:既然我只是将一个数字除以 10,那么 while 循环不应该是无限的吗?因为它总是大于0。例如:如果我传入250,它应该是:
- 25; 计数器 = 1
然后
- 2.5;计数器 = 2
然后
- 0.25; 计数器 = 3
然后
- 0.025; 计数器 = 4
ETC...
func count(_ num: Int) -> Int {
var counter = 0
var number = num
while number > 0 {
number = number / 10
counter += 1
}
return counter
}
解决方案
它不会是无限循环,因为您使用的是Int
. 因此,除法没有其余部分,这意味着例如当您除以 时2/10
,结果将是0
。
推荐阅读
- docker - 如何使用 Docker golang 客户端包通过 TCP 连接?
- docker - Podman 无法拉取镜像
- database - 1:1 关系,这是个好主意吗?
- c# - 如何确定属性是否为可为空的引用类型?
- node.js - 由于打字稿依赖性,角度无法更新
- python-3.x - 从机器人框架调用 python 编码文件时出现 FileNotFoundError
- php - 服务帐户域范围的委派 - PHP 上的 Google Calendar API v3
- google-colaboratory - 如何在 google colab 上制作目录?
- c - 在 int main() 中一个一个或两个使用函数
- c# - 如何从循环中保存 datagridview 行中的单元格值并将其传递给每一行的另一个循环?