একটি ধনাত্মক সংখ্যা N দেওয়া আছে (১ থেকে ৫০০০ পর্যন্ত)। লক্ষ্য হল N কে তিনটি ধনাত্মক অংশে ভাগ করার কত পদ্ধতি আছে। অংশগুলো সমান বা অসমান হতে পারে।
এটি সমাধানের জন্য তিনটি নেস্টেড ফর লুপ ব্যবহার করা হয়। সবচেয়ে ভেতরের লুপে যাচাই করা হয় তিনটি সংখ্যার যোগফল N কিনা। হলে কাউন্ট বাড়ানো হয়।
ইনপুট: N=5
আউটপুট: N কে ৩ অংশে ভাগ করার পদ্ধতি: ২
ব্যাখ্যা: ৫ = (১,১,৩) এবং (১,২,২)
ইনপুট: N=9
আউটপুট: পদ্ধতির সংখ্যা: ৭
ব্যাখ্যা: (১,১,৭), (১,২,৬), (১,৩,৫), (১,৪,৪), (২,২,৫), (২,৩,৪), (৩,৩,৩)
- পূর্ণসংখ্যা N (১-৫০০০) নেওয়া হয়।
divideN(int n)ফাংশন n নিয়ে তিনটি অংশে ভাগ করার পদ্ধতির সংখ্যা রিটার্ন করে।- তিনটি নেস্টেড লুপ: i=1 থেকে n-১, j=i থেকে n-১, k=j থেকে n-১।
- যদি i+j+k == n হয়, count বাড়ানো হয়।
- শেষে count রিটার্ন করা হয়।
#includeusing namespace std; int divideN(int n){ int count = 0; for (int i = 1; i < n; i++){ for (int j = i; j < n; j++){ for (int k = j; k < n; k++){ if(i + j + k == n){ count++; } } } } return count; } int main(){ int N = 500; cout << endl << "N কে ৩ অংশে ভাগ করার পদ্ধতি: " << divideN(N); return 0; }
উপরোক্ত কোড রান করলে আউটপুট (N=500 এর জন্য):
N কে ৩ অংশে ভাগ করার পদ্ধতি: 20833