Math.floor() と Math.abs() 関数で整数除算と剰余を取得する
JavaScriptで整数除算と剰余を取得する方法
% 演算子を使用する
JavaScriptでは、%
演算子を使用して剰余を取得できます。これは、2つのオペランドの剰余を返す演算子です。
const dividend = 10;
const divisor = 3;
// 整数除算
const quotient = dividend / divisor;
// 剰余
const remainder = dividend % divisor;
console.log(`商: ${quotient}`); // 3
console.log(`剰余: ${remainder}`); // 1
この例では、dividend
を divisor
で割った結果、商は 3
、剰余は 1
になります。
Math.floor() と Math.abs() 関数を使用する
Math.floor()
関数は、小数点以下の部分を切り捨てて、整数部分のみを返します。Math.abs()
関数は、絶対値を返します。
const dividend = 10;
const divisor = 3;
// 整数部分のみを取得
const quotient = Math.floor(dividend / divisor);
// 剰余を取得
const remainder = dividend - (quotient * divisor);
console.log(`商: ${quotient}`); // 3
console.log(`剰余: ${remainder}`); // 1
この例では、まず dividend
を divisor
で割った結果を Math.floor()
関数で小数点以下を切り捨てて、商を取得します。次に、dividend
から quotient
と divisor
の積を引いて、剰余を取得します。
どちらの方法でも同じ結果を得ることができますが、%
演算子を使用する方が簡潔で分かりやすいコードになります。
補足
- JavaScriptの割り算は、デフォルトで浮動小数点演算を行います。そのため、整数除算を行う場合は、上記のような方法で剰余を取得する必要があります。
- 剰余は、さまざまな場面で使用されます。例えば、ループのカウンタや、配列のインデックスなどに使用できます。
// 整数除算と剰余を取得する関数
function getIntegerDivisionAndRemainder(dividend, divisor) {
// 整数部分のみを取得
const quotient = Math.floor(dividend / divisor);
// 剰余を取得
const remainder = dividend - (quotient * divisor);
return { quotient, remainder };
}
// 例
const dividend = 10;
const divisor = 3;
const { quotient, remainder } = getIntegerDivisionAndRemainder(dividend, divisor);
console.log(`商: ${quotient}`); // 3
console.log(`剰余: ${remainder}`); // 1
- 剰余を使用して、ループカウンタを作成する:
for (let i = 0; i < 10; i++) {
// 剰余を使用して、偶数か奇数かを判断
if (i % 2 === 0) {
console.log(`偶数: ${i}`);
} else {
console.log(`奇数: ${i}`);
}
}
- 剰余を使用して、配列のインデックスを取得する:
const arr = [1, 2, 3, 4, 5];
// 剰余を使用して、配列の要素にアクセス
const index = 2;
const element = arr[index % arr.length];
console.log(`要素: ${element}`); // 3
これらのサンプルコードは、剰余がどのように使用できるかを示す例です。
練習問題
- 100を7で割ったときの商と剰余を求めましょう。
- 100個の要素を持つ配列を作成し、その配列の奇数番目の要素の合計を求めましょう。
剰余は、さまざまな場面で使用できる便利な演算子です。この演算子を理解して、さまざまなプログラミング課題を解決しましょう。
整数除算と剰余を取得するその他の方法
ビット演算を使用する
JavaScriptでは、ビット演算を使用して整数除算と剰余を取得することができます。
const dividend = 10;
const divisor = 3;
// 整数部分のみを取得
const quotient = dividend >>> divisor;
// 剰余を取得
const remainder = dividend & ((1 << divisor) - 1);
console.log(`商: ${quotient}`); // 3
console.log(`剰余: ${remainder}`); // 1
この方法は、上記の2つの方法よりも高速に実行できますが、ビット演算に慣れていない場合は理解するのが難しい場合があります。
自作関数を使用する
独自の関数を作成して、整数除算と剰余を取得することもできます。
function integerDivisionAndRemainder(dividend, divisor) {
// ここに整数除算と剰余を取得するコードを記述
}
// 例
const dividend = 10;
const divisor = 3;
const { quotient, remainder } = integerDivisionAndRemainder(dividend, divisor);
console.log(`商: ${quotient}`); // 3
console.log(`剰余: ${remainder}`); // 1
この方法は、コードを柔軟にカスタマイズしたい場合に役立ちます。
- 速度が重要な場合は、ビット演算を使用する
- 理解しやすいコードが必要な場合は、
%
演算子を使用する - コードを柔軟にカスタマイズしたい場合は、自作関数を使用する
JavaScriptで整数除算と剰余を取得するには、さまざまな方法があります。それぞれの方法の長所と短所を理解して、状況に応じて適切な方法を選択しましょう。
javascript math modulo