javascript - 函数和方程混淆
javascript - functions and equations confusion
var number = prompt('Input a number!');
var n = number;
function getList() {
for (var n = 1; n <= 17; n++) {
if (n % 3 == 0 || n % 5 == 0)
console.log (n);
}
}
console.log(getList());
console.log((n*(n+1))/2);
//equation for summation: (n*(n+1))/2
我正在尝试 return 可被 3 或 5 整除的数字之和最多为 17。到目前为止,它成功了一半;它列出了所有数字,但我找不到 return 总和的方法。
我有求和方程,但我找不到一种方法来输入它以使其起作用。你如何得到方程来引用列表而不是引用输入的数字?
答案应该是 60。有什么线索吗?谢谢!
var sum = 0;
for (var n = 1; n <= 17; n++) {
if (n % 3 === 0 || n % 5 === 0)
sum += n;
}
console.log(sum);
使用一个变量来添加数字,return 它在 for 循环之后。
下面是例子。
function getList() {
var sum = 0;
for (var n = 1; n <= 17; n++) {
if (n % 3 == 0 || n % 5 == 0) {
sum += n;
}
}
return sum;
}
console.log(getList());
如果你想要一个等式:)
function sumOfNumbersDivisibleBy3Or5(n) {
const by3 = Math.floor(n/3),
by5 = Math.floor(n/5),
by3And5 = Math.floor(n/3/5);
return 3*by3*(by3+1)/2 + 5*by5*(by5 + 1)/2 - 3*5*by3And5*(by3And5 + 1)/2
}
console.log(sumOfNumbersDivisibleBy3Or5(17))
两件事:
只是 return 来自您的 getList
函数的总和
确保您的提示输入已转换为整数,否则它将被视为字符串并且您的n*(n+1)/2
将是错误的
var number = parseInt(prompt('Input a number!'));
var n = number;
function getList() {
var sum = 0;
for (var n = 1; n <= 17; n++) {
if (n % 3 == 0 || n % 5 == 0) {
console.log (n);
sum += n;
}
}
return sum;
}
console.log(getList());
console.log(n, (n*(n+1))/2);
var number = prompt('Input a number!');
function getList() {
var sum = 0;
for (var n = 1; n <= number; n++) {
if (n % 3 == 0 || n % 5 == 0)
sum+=n;
}
return sum;
}
console.log(getList());
它会 return 1 和输入数字之间所有可被 3 或 5 整除的数字之和
var number = prompt('Input a number!');
var n = number;
function getList() {
for (var n = 1; n <= 17; n++) {
if (n % 3 == 0 || n % 5 == 0)
console.log (n);
}
}
console.log(getList());
console.log((n*(n+1))/2);
//equation for summation: (n*(n+1))/2
我正在尝试 return 可被 3 或 5 整除的数字之和最多为 17。到目前为止,它成功了一半;它列出了所有数字,但我找不到 return 总和的方法。
我有求和方程,但我找不到一种方法来输入它以使其起作用。你如何得到方程来引用列表而不是引用输入的数字?
答案应该是 60。有什么线索吗?谢谢!
var sum = 0;
for (var n = 1; n <= 17; n++) {
if (n % 3 === 0 || n % 5 === 0)
sum += n;
}
console.log(sum);
使用一个变量来添加数字,return 它在 for 循环之后。
下面是例子。
function getList() {
var sum = 0;
for (var n = 1; n <= 17; n++) {
if (n % 3 == 0 || n % 5 == 0) {
sum += n;
}
}
return sum;
}
console.log(getList());
如果你想要一个等式:)
function sumOfNumbersDivisibleBy3Or5(n) {
const by3 = Math.floor(n/3),
by5 = Math.floor(n/5),
by3And5 = Math.floor(n/3/5);
return 3*by3*(by3+1)/2 + 5*by5*(by5 + 1)/2 - 3*5*by3And5*(by3And5 + 1)/2
}
console.log(sumOfNumbersDivisibleBy3Or5(17))
两件事:
只是 return 来自您的
getList
函数的总和确保您的提示输入已转换为整数,否则它将被视为字符串并且您的
n*(n+1)/2
将是错误的
var number = parseInt(prompt('Input a number!'));
var n = number;
function getList() {
var sum = 0;
for (var n = 1; n <= 17; n++) {
if (n % 3 == 0 || n % 5 == 0) {
console.log (n);
sum += n;
}
}
return sum;
}
console.log(getList());
console.log(n, (n*(n+1))/2);
var number = prompt('Input a number!');
function getList() {
var sum = 0;
for (var n = 1; n <= number; n++) {
if (n % 3 == 0 || n % 5 == 0)
sum+=n;
}
return sum;
}
console.log(getList());
它会 return 1 和输入数字之间所有可被 3 或 5 整除的数字之和