【发布时间】:2020-03-07 03:34:59
【问题描述】:
我希望用户输入一个数字并打印回该数字的位数。
我知道我可以使用length,但我的作业要求使用while 循环。
这是我目前所拥有的:
var num;
var count = 0;
num = prompt('Enter number: ');
function counter(x, y) {
while (x > 0) {
y++;
x /= 10;
}
return y;
}
var result = counter(num, count);
console.log(result);
当我给出号码3456(示例)时,我会返回号码328。我希望它打印回号码4。
【问题讨论】:
-
将数字转换为字符串并访问
.length属性 -
@nickzoum 这是一种方法
-
应该
0返回0还是1? -
@EricWu 当你学习一种乐器时,你被告知要演奏音阶和琶音,不是因为它们好听,而是因为它们教你技巧。编码练习通常是相似的:简化和限制,以便您学习思考算法和程序设计的方法。通常,可能有一整套“现在不用这个内置的就做”。
-
我们还要提一下在没有循环且不将其视为字符串的情况下执行此操作的数学方法。这是取基于 10 的对数的整数部分并加 1。
Math.floor(Math.log10(Math.abs(num))) + 1取绝对值使其也适用于负数。 0 是一个特例。
标签: javascript while-loop numbers