想问一下大家,老师让我做一个10000以内输出类似9876,
javascript吧
全部回复
仅看楼主
level 2
想问一下大家,老师让我做一个10000以内输出类似9876,654这样位数连续的数,为什么我的这个结果只能输出一个数呢?
2020年07月08日 20点07分 1
level 13
因为 a=a++ 这一句,这一句可以拆分成如下步骤:
缓存=a
a++
a=缓存;
实际上 a 并没有变化,每次给 array[a] 赋值的时候都是赋值到同一位置,所以数组里实际上只有一个数。
还有就是你的算法经过更正后会包含 1098 1087 1076 1065 这样的数,经过我的排查是因为有中间某一位为 0 时也可以通过的判断条件,中间包含第 2 位出现 0 时也会判断为符合条件。
你可以参考下我的写法。
var a=[];
for (let n=0;n<10001;n++) {
let temp=n.toString();
let length=temp.length;
if (length<2) continue;
let pass=true;
for (let bit=0;bit+1<length;bit++) {
if (parseInt(temp[bit])-1!=parseInt(temp[bit+1])) {
pass=false;
break;
}
};
if (pass) a.push(n);
};
alert(a);
2020年07月09日 03点07分 3
谢谢🙏
2020年07月11日 13点07分
level 3
直接转成字符串比较不是更方便吗?
2020年07月11日 23点07分 5
level 4
教你个笨方法(就题说题,复用 拓展啥的不考虑)。10000是五位数,既然已经明确了,你就写一个a=5的循环,在第一次的循环里生成一个数字,第二次生成的是上一个减一,类推,最后拼一个字符串就可以实现
2020年07月12日 01点07分 6
1