สมมติว่าเรามีตัวเลขสองตัว 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