我试图编写一个有效的函数,它将打印1到1000之间的所有数字,其中数字的总和可以被8整除。
我正在使用此system($^X, "script.pl", @ARGV);
:
for
但不确定数学。
答案 0 :(得分:1)
这是一个使用现代JavaScript数组函数的版本。
方法如下:
['5', '0', '3']
。parseInt
,默认采用十进制表示法),然后使用reduce
函数计算总和,计算数字之和。sum % 8 === 0
。这称为remainder或模数。
for (let i = 1; i <= 1000; ++i) {
let digits = i.toString().split(''),
sum = digits.map((d) => parseInt(d)).reduce((a, v) => a + v);
if (sum % 8 === 0) {
console.log(i, 'because', digits.join(' + '), '=', sum, 'is divisible by 8');
}
}
&#13;
.as-console-wrapper {
max-height: 100% !important;
}
&#13;
答案 1 :(得分:1)
for(var i = 1 ; i <= 1000; i++) {
var digitSum = String(i).split('').reduce((a, b) => +a+(+b));
if(digitSum % 8 === 0) {
console.log(i)
}
}
答案 2 :(得分:0)
这是数学和代码:
for(var i = 0 ; i< 1001; i++) {
var stringNumber = i.toString();
var sum = 0;
for(var j = 0 ; j < stringNumber.length; j++) {
sum+= parseInt(stringNumber.charAt(j));
}
if(sum%8===0) console.log(i);
}
下次,请确保您显示了尝试并且无效的最小代码解决方案的证明。
答案 3 :(得分:0)
以下是解决方案:
for(var i = 0 ; i< 1001; i++) {
var arNum = i.toString().split('');
var sumNum = arNum.reduce(add, 0);
if(sumNum%8===0) console.log(i);
}
function add(a, b) {
return a + b;
}
&#13;