为了完成一份作业任务,我需要在不使用内置模运算符(%)的情况下返回num1除以num2的余数。我已经能够通过大部分测试,但是我卡在了如何处理给定数字的正负符号上。我需要保留num1的符号,并且如果num2为负数,则返回一个正数——这让我感到非常困惑... :) 如果有任何清晰的解释,将不胜感激! 我并不是要直接得到答案,只是好像我漏掉了什么显而易见的东西...也许我需要一种新的方法?
function modulo(num1, num2) {
if (num1 === 0) {
return 0;
}
if (num2 === 0 || isNaN(num1) || isNaN(num2)) {
return NaN;
}
if (num1 < num2) {
return num1;
}
if (num1 > 0 && num2 > 0) {
var counter = num1;
while (counter >= Math.abs(num2)) {
counter = counter - num2;
}
return counter;
}
}
var output = modulo(25, 4);
console.log(output); // 1
modulo(-25, 4)
和modulo(25, -4)
的期望输出是什么? - Jordan Running%
是余数运算符。 - Bergi