如何从数字中提取每个数字?

ron*_*onT 11 math

这不是一个家庭作业问题.我能想到的是重复将数字除以10(直到数字小于10)并保持计数,但这样的事情是否有诀窍?

nic*_*ckf 10

是的,你几乎有数学方法在那里做到这一点.

while (num >= 10)
    digit = num MOD 10   // and save this into an array or whatever
    num = num / 10
Run Code Online (Sandbox Code Playgroud)

在这结束时,num将包含最后一位数字.

这是一个Javascript实现:

function getDigits(num) {
    var digits = [];
    while (num >= 10) {
        digits.unshift(num % 10);
        num = Math.floor(num / 10);
    }
    digits.unshift(num);
    return digits;
}
Run Code Online (Sandbox Code Playgroud)

请注意,它仅适用于非负整数.


tch*_*hen 7

为什么在已经有一种非常可靠的方法实现转换时呢?(因为它不是家庭作业).

在伪C中:

char digits[10];
sprintf(digits, "%d", number);
Run Code Online (Sandbox Code Playgroud)

现在你的数字char数组(字符串)应该由数字的每个数字组成.大多数其他脚本语言也包含sprintf函数.

如果你想要base 8或base 16或binary等,这将有效.只需使用不同的格式说明符.


Cha*_*ana 1

如果它是整数,您可以将字符串表示形式转换为字符数组,然后将其转换为字节数组 (0-9)