打印 1-100 的偶数,每行 5 个数字
Print even numbers from 1-100 with 5 numbers per line
正在尝试复习一些基本知识 javascript,我想知道您将如何解决这个问题。我找到了一种方法,但它很丑陋,我很感激一些更有经验的眼睛让我知道他们在做什么。基本上,只需遍历数字 1-100 并在每行上以五个为一组打印所有偶数。所以第一行是 2,4,5,8,10,第二行是 12,14,16,18,20。这是我目前所拥有的:
var counter = 0;
var line=[];
for(var i = 0; i<=100; i++){
if(i%2==0){
if(line.length <5){
line[counter] = i;
counter++
}else{
console.log(line);
line=[];
counter=0;
line[counter] =i;
}
}
}
console.log(line);
非常感谢!
console.log(2,4,6,8,10);
console.log(12,14,16,18,20);
console.log(22,24,26,28,30);
console.log(32,34,36,38,40);
console.log(42,44,46,48,50);
console.log(52,54,56,58,60);
console.log(62,64,66,68,70);
console.log(72,74,76,78,80);
console.log(82,84,86,88,90);
console.log(92,94,96,98,100);
对于大多数假设性的编程问题,最值得解决的是他们缺乏现实基础并做最简单的事情——现实肯定会复杂得多。
至于学习练习,通常当您自己解决时效果最好。
var line = [];
//you are uninterested in odd numbers, so increment the counter by 2
for(var i = 0; i <= 1000; i = i + 2) {
line.push(i);
if((i + 2) % 5 === 0) { //every 5 lines print result
console.log(line);
line = []
}
}
我在代码中看到的问题是您从 0 而不是 1 开始循环,并且您没有增加 else
块中的计数器。
修复你得到:
var counter = 0;
var line=[];
for (var i = 1; i <= 100; i++) {
if (i % 2 == 0){
if (line.length < 5) {
line[counter] = i;
counter++
} else {
console.log(line);
line=[];
counter = 0;
line[counter] = i;
counter++
}
}
}
console.log(line);
与其从 1 到 100 循环并检查数字是否为偶数,不如从 2 到 100 分两步循环。您根本不需要计数器,您可以将项目推入数组。无需重复将项目添加到 if
和 else
块中的数组的代码,您只需在之后执行一次即可。
通过这些简化,您得到:
var line=[];
for (var i = 2; i <= 100; i += 2) {
if (line.length == 5) {
console.log(line);
line=[];
}
line.push(i);
}
console.log(line);
<script>
var counter = 0;
var line = [];
for (var i = 2; i <= 100; i += 2) {
line[counter] = i;
counter++;
if (line.length == 5) {
console.log(line);
counter = 0;
line = [];
}
}
</script>
与你的相同,但使用递增 2 的循环
正在尝试复习一些基本知识 javascript,我想知道您将如何解决这个问题。我找到了一种方法,但它很丑陋,我很感激一些更有经验的眼睛让我知道他们在做什么。基本上,只需遍历数字 1-100 并在每行上以五个为一组打印所有偶数。所以第一行是 2,4,5,8,10,第二行是 12,14,16,18,20。这是我目前所拥有的:
var counter = 0;
var line=[];
for(var i = 0; i<=100; i++){
if(i%2==0){
if(line.length <5){
line[counter] = i;
counter++
}else{
console.log(line);
line=[];
counter=0;
line[counter] =i;
}
}
}
console.log(line);
非常感谢!
console.log(2,4,6,8,10);
console.log(12,14,16,18,20);
console.log(22,24,26,28,30);
console.log(32,34,36,38,40);
console.log(42,44,46,48,50);
console.log(52,54,56,58,60);
console.log(62,64,66,68,70);
console.log(72,74,76,78,80);
console.log(82,84,86,88,90);
console.log(92,94,96,98,100);
对于大多数假设性的编程问题,最值得解决的是他们缺乏现实基础并做最简单的事情——现实肯定会复杂得多。
至于学习练习,通常当您自己解决时效果最好。
var line = [];
//you are uninterested in odd numbers, so increment the counter by 2
for(var i = 0; i <= 1000; i = i + 2) {
line.push(i);
if((i + 2) % 5 === 0) { //every 5 lines print result
console.log(line);
line = []
}
}
我在代码中看到的问题是您从 0 而不是 1 开始循环,并且您没有增加 else
块中的计数器。
修复你得到:
var counter = 0;
var line=[];
for (var i = 1; i <= 100; i++) {
if (i % 2 == 0){
if (line.length < 5) {
line[counter] = i;
counter++
} else {
console.log(line);
line=[];
counter = 0;
line[counter] = i;
counter++
}
}
}
console.log(line);
与其从 1 到 100 循环并检查数字是否为偶数,不如从 2 到 100 分两步循环。您根本不需要计数器,您可以将项目推入数组。无需重复将项目添加到 if
和 else
块中的数组的代码,您只需在之后执行一次即可。
通过这些简化,您得到:
var line=[];
for (var i = 2; i <= 100; i += 2) {
if (line.length == 5) {
console.log(line);
line=[];
}
line.push(i);
}
console.log(line);
<script>
var counter = 0;
var line = [];
for (var i = 2; i <= 100; i += 2) {
line[counter] = i;
counter++;
if (line.length == 5) {
console.log(line);
counter = 0;
line = [];
}
}
</script>
与你的相同,但使用递增 2 的循环