สมมติว่าเรามีตัวเลขสองตัว n และ k เรามีเหรียญมากมายมูลค่า 1 ถึง n เราต้องการเลือกเหรียญบางส่วนให้ผลรวมเท่ากับ k สามารถเลือกเหรียญมูลค่าเดียวกันหลายเหรียญเพื่อให้ผลรวมรวมเป็น k เราต้องนับจำนวนเหรียญขั้นต่ำที่ต้องใช้เพื่อให้ผลรวมเป็น k
เช่น ถ้าค่าที่ป้อนเข้าเป็น n = 6; k = 16 ผลลัพธ์จะได้ 3 เพราะ (2 * 6) + 4
ขั้นตอนการแก้ปัญหา
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:
c := (n + k - 1) / n คืนค่า 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