আমাদের পাঁচটি পূর্ণসংখ্যা দেওয়া হয়েছে N, A, B, X এবং Y . লক্ষ্য হল পরিসীমা [ 1 থেকে N ] , যদি
-
একটি সংখ্যা A দ্বারা বিভাজ্য, তারপর লাভ X দ্বারা বৃদ্ধি পায় .
-
একটি সংখ্যা B দ্বারা বিভাজ্য তারপর লাভ Y দ্বারা বৃদ্ধি পায় .
একটি মুনাফা শুধুমাত্র একবার যোগ করা যেতে পারে, পরিসরে একটি নির্দিষ্ট সংখ্যার জন্য।
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট − N=4, A=2, B=3, X=2, Y=3
আউটপুট − সর্বাধিক লাভ হল −7
ব্যাখ্যা −
2,4 A ( 2 ) দ্বারা বিভাজ্য। লাভ 0 থেকে 2, তারপর 2 থেকে 4 ( X=2 দ্বারা )
বৃদ্ধি পায়3 বি (3) দ্বারা বিভাজ্য। লাভ 4 থেকে 7 পর্যন্ত বৃদ্ধি পায়। (Y=3 দ্বারা)
ইনপুট − N=5, A=2, B=4, X=1, Y=3
আউটপুট − সর্বাধিক লাভ হল:4
ব্যাখ্যা −
2,4 A ( 2) দ্বারা বিভাজ্য।
4 এছাড়াও B ( 4) দ্বারা বিভাজ্য।
2 লাভের জন্য 0 থেকে 1 (X দ্বারা) বৃদ্ধি পায়। 4-এর জন্য আমরা B দ্বারা বিভাজ্যতা বেছে নিয়েছি। তাই লাভ Y দ্বারা X নয় কারণ Y বেশি। সুতরাং এটি 1 থেকে 4 ( Y=3 দ্বারা)
পর্যন্ত বৃদ্ধি পায়নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
-
আমাদের পূর্ণসংখ্যা N, A, B, X, Y.
আছে -
ফাংশন maximizeProfit(int n, int a, int b, int x, int y) লাভ গণনা করে এবং মান প্রদান করে। এটি সমস্ত ভেরিয়েবলকে প্যারামিটার হিসাবে নেয় এবং সর্বাধিক লাভ ফেরত দেয়।
-
পরিবর্তনশীল লাভে লাভের পরিমাণ থাকবে, প্রাথমিকভাবে 0।
-
1 থেকে n থেকে শুরু করে, লুপ
ব্যবহার করে i এর বিভাজ্যতা a এবং b দ্বারা পরীক্ষা করুন -
i যদি a এবং b উভয় দ্বারা বিভাজ্য হয় তাহলে x বা y যেটি বেশি হয় তার দ্বারা মুনাফা বাড়ান।
-
অন্যথায় যদি আমি শুধুমাত্র একটি দ্বারা বিভাজ্য হয়, x
দ্বারা লাভ বাড়ান -
অন্যথায় আমি শুধুমাত্র b দ্বারা বিভাজ্য হলে, y
দ্বারা লাভ বাড়ান -
শেষে রিটার্ন মান ফলস্বরূপ লাভে উপস্থিত।
উদাহরণ
#include <bits/stdc++.h> using namespace std; // Function to return the maximum profit int maximizeProfit(int n, int a, int b, int x, int y){ int profit=0; for(int i=1;i<=n;i++){ if(i%a==0 && i%b==0){ int maxx=x>=y?x:y; profit+=maxx; } else if(i%a==0){ profit+=x; } else if(i%b==0){ profit+=y; } } return profit; } int main(){ int N = 6, A = 2, B =4, X = 6, Y = 3; cout <<"Maximized profit is: "<<maximizeProfit(N,A,B,X,Y); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেMaximized profit is: 2