একটি ইন্টিজার অ্যারে থেকে জোড় (Even) এবং বিজোড় (Odd) সংখ্যা আলাদা দুটি অ্যারেতে রাখতে মডুলো অপারেটর (% 2) ব্যবহার করা হয়।
এলগরিদম
- দুটি খালি অ্যারে/লিস্ট তৈরি করুন (even, odd)।
- মূল অ্যারে লুপ করুন।
if (n % 2 == 0)হলে even-এ, অন্যথায় odd-এ যোগ করুন।
সম্পূর্ণ উদাহরণ (লিস্ট ব্যবহার করে — ডাইনামিক সাইজ)
using System;
using System.Collections.Generic;
class EvenOddSplitDemo
{
public static void Main()
{
int[] arr = { 77, 34, 59, 42, 99 };
var even = new List<int>();
var odd = new List<int>();
foreach (int n in arr)
{
if (n % 2 == 0) even.Add(n);
else odd.Add(n);
}
Console.WriteLine("জোড় সংখ্যা: " + string.Join(", ", even));
Console.WriteLine("বিজোড় সংখ্যা: " + string.Join(", ", odd));
}
}
আউটপুট
জোড় সংখ্যা: 34, 42
বিজোড় সংখ্যা: 77, 59, 99
ফিক্সড সাইজ অ্যারে ব্যবহার করে (প্রাথমিক উদাহরণের মতো)
int[] arr = { 77, 34, 59, 42, 99 };
int[] even = new int[arr.Length];
int[] odd = new int[arr.Length];
int e = 0, o = 0;
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] % 2 == 0) even[e++] = arr[i];
else odd[o++] = arr[i];
}
// প্রিন্ট (শুধু ভरे হয়ে যাওয়া অংশ)
Console.Write("Even: ");
for (int i = 0; i < e; i++) Console.Write(even[i] + " ");
Console.WriteLine();
Console.Write("Odd: ");
for (int i = 0; i < o; i++) Console.Write(odd[i] + " ");
LINQ এক-লাইনার
var even = arr.Where(n => n % 2 == 0).ToArray();
var odd = arr.Where(n => n % 2 != 0).ToArray();
নোট
- নেগেটিভ সংখ্যার জন্যও
% 2কাজ করে (C#-এ-3 % 2 == -1)। - লিস্ট ব্যবহার করলে সাইজ ম্যানেজমেন্ট সহজ।