অ্যারে একই ডেটা টাইপের উপাদানগুলির একটি ক্রম। এই সমস্যায় আমরা সমস্যা সমাধানের জন্য পূর্ণসংখ্যা অ্যারে বিবেচনা করতে যাচ্ছি। এই সমস্যায় আমরা এলিমেন্টের যোগফল খুঁজে বের করতে যাচ্ছি যেটি এলিমেন্ট থেকে এলিমেন্টকে ভাগ করে পাওয়া যায়।
এই সমস্যাটি আরও ভালভাবে বোঝার জন্য কয়েকটি উদাহরণ নেওয়া যাক -
উদাহরণ 1 −
Array : 3 , 5 ,98, 345 Sum : 26
ব্যাখ্যা − 3 + 5/3 + 98/5 + 345/98 =3 + 1 + 19 + 3 =26
আমরা প্রতিটি উপাদানকে তার পূর্ববর্তী উপাদান দিয়ে ভাগ করেছি এবং যোগফল বের করার জন্য বিভাজনের শুধুমাত্র পূর্ণসংখ্যা অংশ বিবেচনা করেছি।
উদাহরণ 2 −
Array : 2, 5 , 8, 11, 43 , 78 , 234 Sum : 13
ব্যাখ্যা − 2 + 2 + 1 + 1 + 3 + 1 + 3 =13
অ্যালগরিদম
এই অ্যালগরিদম অ্যারের প্রতিটি উপাদান অতিক্রম করে। এবং এটিকে পূর্ববর্তী উপাদান দ্বারা ভাগ করুন। তারপর, যোগফল ভেরিয়েবলের সাথে ভাগফলের মান যোগ করে।
Input : Array - int arr[] Output : int sum
Step 1: Initialize sum = arr[0] Step 2: for(i = 1 to size of arr ) follow step 3 Step 3 : sum = sum + (arr[i]/arr[i-0] ) Step 4: print the sum
পূর্ববর্তী সংখ্যাগুলি থেকে সংখ্যাগুলিকে ভাগ করার পরে অ্যারের যোগফল খুঁজে পেতে এটি একটি সহজ চার ধাপের অ্যালগরিদম . আমরা অ্যারের প্রথম উপাদান দ্বারা যোগফল শুরু করেছি কারণ যুক্তি অনুসারে প্রথম উপাদানটিতে কোনও উপাদান নেই যার অর্থ এটিকে কোনও উপাদান দ্বারা ভাগ করা যায় না। তাই লুপের জন্য বিবেচনা করা হলে একটি ত্রুটি তৈরি করুন কারণ আমরা -1 সূচকে উপাদানটি অ্যাক্সেস করব যা ভুল।
উদাহরণ
#include<stdio.h> int main() { int arr[] = { 2, 5 , 8, 11, 43 , 78 , 234 }; int n = sizeof(arr)/sizeof(arr[0]); int sum = arr[0]; for (int i = 1; i < n; i++) { sum += arr[i] / arr[i - 1]; } printf("The sum of array after dividing number from previous numbers is %d \n", sum); return 0; }
আউটপুট
The sum of array after dividing number from previous number is 13.