n টি পূর্ণ পানির বোতল আছে। m টি খালি বোতল দিয়ে ১ টি পূর্ণ বোতল এক্সচেঞ্জ করা যায়। পান করার পর সেটি খালি বোতলে পরিণত হয়। সর্বোচ্চ কতটি বোতল পান করা যায় তা বের করতে হবে।
সমস্যা বিবরণ
ইনপুট: n = 9, m = 3
প্রক্রিয়া: ৯ পান → ৯ খালি → ৩ পূর্ণ → ৩ পান → ৩ খালি → ১ পূর্ণ → ১ পান → ১ খালি (এক্সচেঞ্জের জন্য অপর্যাপ্ত)।
মোট: 9 + 3 + 1 = 13।
সমাধানের ধাপসমূহ
x = n, s = 0, k = 0আরম্ভ করুন।x >= mথাকা পর্যন্ত লুপ চালান:k = x % m(বাকি খালি বোতল)।x = x // m(নতুন পূর্ণ বোতল)।s = s + x(মোট পান করা বোতল যোগ করুন)।x = x + k(পুনরায় ব্যবহারযোগ্য খালি বোতল)।
n + sরিটার্ন করুন।
পাইথন উদাহরণ
def solve(n, m):
x = n
s = 0
k = 0
while x >= m:
k = x % m
x = x // m
s = s + x
x = x + k
return n + s
n = 9
m = 3
print(solve(n, m)) # আউটপুট: 13
ইনপুট
9, 3
আউটপুট
13