我一直在努力定义一个函数。它必须以正数N作为参数,并返回最后一个有序数。 “有序”数字是指每个数字彼此跟随。
Example1:将1000作为参数并返回789。
Example2:以500作为参数并返回456。
答案 0 :(得分:0)
这是工作代码。尽管我不只是给你答案。这是您必须练习并自己学习的方法。花时间了解我的所作所为。而且,此解决方案可以改进很多,这只是我快速完成并可以正常工作的地方。
正在执行的算法:
function calc() {
//Get the number in the text input
var nbr = parseInt(document.getElementById("number").value, 10);
//Loop starting from the top
for (var i = nbr; i > 0; i--) {
if (isOrderedNumber(i)) {
document.getElementById("result").innerText = i;
return;
}
}
document.getElementById("result").innerText = "None found";
}
function isOrderedNumber(number) {
var digits = number.toString().split('');
//Loops in the digits of the number
for (var i = 0; i < digits.length - 1; i++) {
//Check if the current number+1 is not equal to the next number.
if (parseInt(digits[i]) + 1 !== parseInt(digits[i + 1])) {
return false;
}
}
return true;
}
<input id="number" type="text" />
<button onclick="calc()">Find last ordered number</button>
<br/>
<br/>
<span id="result"></span>
在这种情况下,不是使用html元素,而是通过参数接收“ nbr”,并且将返回值,而不是将值放在html元素中。询问您是否对此有任何疑问。