C#で偶数と奇数の整数を別々の配列に分割する方法
C#では、剰余演算子(%)を使うことで、配列内の整数を偶数と奇数に振り分け、それぞれ別の配列に格納することができます。本記事では、その具体的な実装方法をサンプルコードとともに解説します。
基本的な考え方
まず、偶数と奇数を格納するための2つの配列を用意します。
int[] arr2 = new int[5]; int[] arr3 = new int[5];
ある要素を2で割った余りが0であれば、その要素は偶数です。この条件に合致した要素を取り出し、別の配列へ追加していきます。以下のコードでは、forループで元の配列の長さ分だけ繰り返し処理を行っています。
if (arr1[i] % 2 == 0) {
arr2[j] = arr1[i];
}
else側の条件分岐では奇数の要素が得られます。これらを独立した配列に追加し、後から個別に表示します。
完全なサンプルコード
以下に、1つの配列から偶数と奇数を抽出して別々の配列に分割し、それぞれを出力するプログラム全体を示します。
using System;
namespace Demo {
public class Program {
public static void Main(string[] args) {
int[] arr1 = new int[] {
77,
34,
59,
42,
99
};
int[] arr2 = new int[5];
int[] arr3 = new int[5];
int i, j = 0, k = 0;
for (i = 0; i < 5; i++) {
if (arr1[i] % 2 == 0) {
arr2[j] = arr1[i];
j++;
} else {
arr3[k] = arr1[i];
k++;
}
}
Console.WriteLine("Even numbers...");
for (i = 0; i < j; i++) {
Console.WriteLine(arr2[i]);
}
Console.WriteLine("Odd numbers...");
for (i = 0; i < k; i++) {
Console.WriteLine(arr3[i]);
}
}
}
}
実行結果
上記のプログラムを実行すると、次のように偶数と奇数がそれぞれ別々に出力されます。
Even numbers... 34 42 Odd numbers... 77 59 99
処理のポイント
- 剰余演算子(%)の活用: 「arr1[i] % 2 == 0」がtrueなら偶数、falseなら奇数と判定できます。
- インデックス変数の管理: 偶数用のカウンタ「j」と奇数用のカウンタ「k」を別々に用意することで、各配列の末尾に要素を順番に追加できます。
- 出力時の範囲指定: 分割後の配列には未使用の領域が残るため、表示する際は実際に格納された要素数(jおよびk)までループさせる点に注意しましょう。
この手法は、LINQを使用せずにシンプルな条件分岐だけで実装できるため、C#の基礎を学ぶ際にも非常に役立ちます。
-
Pythonで奇数桁と偶数桁の合計の差を判定するプログラム
この記事では、与えられた問題を解決するための解法とアプローチについて詳しく解説します。 問題文 整数が1つ与えられたとき、奇数桁の合計と偶数桁の合計の差が0であるかどうかを判定する必要があります。 素朴なアプローチ(ブルートフォース) 最も単純な方法は、数値を構成するすべての偶数桁と奇数桁の合計をそれぞれ計算し、その差を求めることです。しかし、この方法では各桁を順番に処理するため、桁数に比例した計算時間が必要になります。 効率的なアプローチ:11の倍数判定を活用 計算時間を削減するために、「暗算の数学」でよく知られている性質を利用します。それは「ある整数の奇数桁の合計と偶数桁の合計の差が0にな
-
【Python】約数の個数が偶数か奇数かを判定するプログラムの書き方
この記事では、ある整数の約数の個数が偶数か奇数かを判定するPythonプログラムについて、その考え方と実装方法をわかりやすく解説します。 問題文 ある数「n」が与えられたとき、その約数の総数が偶数であるか奇数であるかを判定してください。 例えば、n = 10 の場合、約数は 1, 2, 5, 10 の4つなので「偶数」。一方、n = 100 の場合は 1, 2, 4, 5, 10, 20, 25, 50, 100 の9つとなり「奇数」となります。 アプローチ:約数を実際に数える 最も基本的な方法は、すべての約数を見つけ、その個数が偶数か奇数かをチェックすることです。 ここで重要なのは、約数