You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

输入两个数字m和k,如何输出二者之间的非端点数字?

如何用JavaScript输出两个数字之间的数(不含边界)

需求:给定两个以空格分隔的数字m和k,输出二者之间的所有数字(不包含m和k本身)。

现有代码运行后不符合预期:

// print the numbers between this two numbers
let a=[5,7];
var temp=[];
for(var i=5;i<=8;i++){
  temp.push(i);
}
console.log(temp);

运行结果是 [5,6,7,8],但实际需要输出 6 7。

示例输入:5 8
示例输出:6 7


问题出在哪

  1. 循环的起始、结束值都是硬写死的,没有使用输入的两个数字,没法适配不同输入。
  2. 循环条件i<=8包含了边界值8,起始的5也直接被加入数组,导致结果包含了不需要的边界数。
  3. 没考虑两个数字顺序颠倒的情况(比如输入8 5)。

修正后的代码

// 获取输入(浏览器环境用prompt,Node环境可改用process.argv)
const input = prompt("请输入两个空格分隔的数字:");
const [m, k] = input.split(" ").map(Number);

const temp = [];
// 统一处理数字顺序,避免输入颠倒的情况
const min = Math.min(m, k);
const max = Math.max(m, k);

// 从min+1开始循环,到max-1结束,完全避开边界
for(let i = min + 1; i < max; i++){
  temp.push(i);
}

// 转换成空格分隔的字符串输出
console.log(temp.join(" "));

为什么这么改

  • 用Math.min和Math.max统一处理数字顺序,不管输入是5 8还是8 5,都能正确找到中间数。
  • 循环起始设为min+1,结束条件用i < max,确保只加入两个边界之间的数。
  • 最后用join(" ")把数组转成空格分隔的字符串,和示例输出格式一致。

测试输入5 8时,输出就是6 7,完全符合需求。


内容的提问来源于stack exchange,提问作者slystersanto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 18:25:23