codewars: Beginner Series #3 Sum of Numbers
に質問
Given two integers a and b, which can be positive or negative, find the sum of all the integers between including them too and return it. If the two numbers are equal return a or b.
Note: a and b are not ordered!
解釈:整数aとbを受け入れて、2つの数を含む2つの数字の間の和を求める.2つの数が等しい場合、整数aまたはbが返されます.aおよびbは負の値をとることができ、aの値はbより大きくすることができる.
例最初はelse ifを使用してaとbの値が同じ場合を作成したが、すぐに最初のif文に含めることができ、コードが破棄されることに気づいた.
他人の答えパラメータを受け取ったとき、Math.min, Math.max APIを知っていても、彼が書いた戻り値の公式が分からないので書けないかもしれません. MDNで検索し、上記のようにMath.minは最小値を返し、パラメータが数値でない場合はNaNを出力する.Math.maxは逆です
Given two integers a and b, which can be positive or negative, find the sum of all the integers between including them too and return it. If the two numbers are equal return a or b.
Note: a and b are not ordered!
解釈:整数aとbを受け入れて、2つの数を含む2つの数字の間の和を求める.2つの数が等しい場合、整数aまたはbが返されます.aおよびbは負の値をとることができ、aの値はbより大きくすることができる.
例
GetSum(1, 0) == 1 // 1 + 0 = 1
GetSum(1, 2) == 3 // 1 + 2 = 3
GetSum(0, 1) == 1 // 0 + 1 = 1
GetSum(1, 1) == 1 // 1 Since both are same
GetSum(-1, 0) == -1 // -1 + 0 = -1
GetSum(-1, 2) == 2 // -1 + 0 + 1 + 2 = 2
私が作った答え function getSum(a, b, c=0){
if (a <= b){
for(i=a; i<=b; i++){
c += i;
} return c;
} else if(a > b){
for(i=b; i<=a; i++){
c += i;
} return c;
}
}
getSum(1,5); //15
getSum(4,1); //10
getSum(2,2); //2
const GetSum = (a, b) => {
let min = Math.min(a, b),
max = Math.max(a, b);
return (max - min + 1) * (min + max) / 2;
}
console.log(Math.min(2, 3, 1));
// expected output: 1
console.log(Math.min(-2, -3, -1));
// expected output: -3
const array1 = [2, 3, 1];
console.log(Math.min(...array1));
// expected output: 1
Reference
この問題について(codewars: Beginner Series #3 Sum of Numbers), 我々は、より多くの情報をここで見つけました https://velog.io/@jieunmin/codewars-Beginner-Series-3-Sum-of-Numbersテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol