একটি অ্যারে arr[N] দেওয়া আছে। অ্যারের গড় বের করতে হবে। দুই পদ্ধতিতে সমাধান দেখানো হলো: ইটেরেটিভ (লুপ) এবং রিকারসিভ (পুনরাবৃত্তি)।
গড় = সব উপাদানের যোগফল / উপাদানের সংখ্যা।
ইটেরেটিভ পদ্ধতি
লুপ (for/while) ব্যবহার করে প্রতিটি উপাদান যোগ করে গড় বের করা।
ইনপুট
arr[] = {1, 2, 4, 5, 8}
আউটপুট
4
ব্যাখ্যা — যোগফল = 20, সংখ্যা = 5, গড় = 20/5 = 4
পদ্ধতি (ইটেরেটিভ)
- লুপ দিয়ে প্রতিটি উপাদান যোগ করুন।
- যোগফলকে আকার দিয়ে ভাগ করুন।
এলগরিদম
Start
Step 1 → double avg(int arr[], int size)
int sum = 0
for i = 0 to size-1: sum += arr[i]
return sum/size
Step 2 → main(): অ্যারে ঘোষণা, avg() কল
Stop
উদাহরণ কোড (ইটেরেটিভ)
#include <iostream>
using namespace std;
double avg(int arr[], int size){
int sum = 0;
for (int i = 0; i < size; i++)
sum += arr[i];
return sum/size;
}
int main(){
int arr[] = {2, 3, 1, 6, 8, 10};
int size = sizeof(arr)/sizeof(arr[0]);
cout << "Average (iterative): " << avg(arr, size) << endl;
return 0;
}
আউটপুট
Average (iterative): 5
রিকারসিভ পদ্ধতি
ফাংশন নিজেরকে বারবার কল করে উপাদানগুলো যোগ করে, শেষে গড় রিটার্ন করে।
ইনপুট
arr[] = {2, 4, 6, 8}
আউটপুট
5
এলগরিদম (রিকারসিভ)
Start
Step 1 → double recursive(int arr[], int i, int size)
if i == size-1 return arr[i]
if i == 0 return (arr[i] + recursive(arr, i+1, size))/size
return arr[i] + recursive(arr, i+1, size)
Step 2 → double avg(int arr[], int size)
return recursive(arr, 0, size)
Step 3 → main(): অ্যারে ঘোষণা, avg() কল
Stop
উদাহরণ কোড (রিকারসিভ)
#include <iostream>
using namespace std;
double recursive(int arr[], int i, int size){
if (i == size-1) return arr[i];
if (i == 0) return ((arr[i] + recursive(arr, i+1, size))/size);
return (arr[i] + recursive(arr, i+1, size));
}
double average(int arr[], int size){
return recursive(arr, 0, size);
}
int main(){
int arr[] = {1, 5, 3, 2, 6, 7};
int size = sizeof(arr)/sizeof(arr[0]);
cout << "Average (recursive): " << average(arr, size) << endl;
return 0;
}
আউটপুট
Average (recursive): 4