สมมติว่าเรามีตัวเลขสองตัว n และ k เรามีเหรียญมูลค่า 1 ถึง n ไม่จำกัดจำนวน เราต้องการหาค่าบางค่าที่มีผลรวมเป็น k เราสามารถเลือกเหรียญที่มีมูลค่าเท่ากันได้หลายเหรียญเพื่อให้ได้ผลรวม k เราต้องนับจำนวนเหรียญขั้นต่ำที่จำเป็นเพื่อให้ได้ผลรวม k
ดังนั้นหากอินพุตเป็นเช่น n =6; k =16 ดังนั้นผลลัพธ์จะเป็น 3 เพราะ (2 * 6) + 4
ขั้นตอน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
c := (n + k - 1) / n return c
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#include<bits/stdc++.h> using namespace std; int solve(int n, int k){ int c=(n+k-1)/n; return c; } int main(){ int n = 6; int k = 16; cout << solve(n, k) << endl; }
อินพุต
6, 16
ผลลัพธ์
3