ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার তালিকা আছে এবং আরও দুটি ভেরিয়েবল k এবং t আছে। আসুন একটি অপারেশন বিবেচনা করি যেখানে আমরা একটি এলিমেন্ট বাছাই করি যা বলে e পরিসরে [-k, k] এবং শেষে এটিকে সংখ্যায় সন্নিবেশ করাই। আমাদের প্রয়োজন ন্যূনতম সংখ্যক অপারেশন খুঁজে বের করতে হবে যাতে সংখ্যার যোগফল লক্ষ্যের সমান হয়।
সুতরাং, ইনপুট যদি nums =[3, 1] k =4 t =19 এর মতো হয়, তাহলে আউটপুট হবে 4 কারণ আমরা যোগফল 19 পেতে [3, 1, 4, 4, 4, 3] এর মতো যোগ করতে পারি। .
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
মোট :=সংখ্যায় উপস্থিত সমস্ত উপাদানের যোগফল
-
পার্থক্য :=|t - মোট |
-
ফলাফল :=(diff/k)
এর তল -
যদি ফলাফল * k পার্থক্যের মত না হয়, তাহলে
-
ফলাফল :=ফলাফল + 1
-
-
ফেরত ফলাফল
উদাহরণ
আরও ভালোভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি
def solve(nums, k, t): total = sum(nums) diff = abs(t - total) result = diff // k if result * k != diff: result = result + 1 return result nums = [3, 1] k = 4 t = 19 print(solve(nums, k, t))
ইনপুট
[3, 1], 4, 19
আউটপুট
4