Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โค้ด C++ ตรวจสอบขนาดแพ็คจากช่วงที่กำหนด

สมมติว่าเรามีตัวเลขสองจำนวน l และ r มีร้านขายภาชนะอาหาร 'a' ชิ้นลดราคา ลูกค้าอยากซื้อ x ชิ้น ลูกค้ากลยุทธ์โลภ:

  • ซื้อ floor(x/a) แพ็กลดราคา
  • ซื้อเหลือ (x mod a) ชิ้นทีละชิ้น

แต่ลูกค้าโลภ ถ้า (x mod a) >= a/2 จะซื้อแพ็คเต็ม a ชิ้นแทน ลูกค้าซื้อได้ทุกจำนวนในช่วง l ถึง r ต้องตรวจสอบว่าเลือกขนาดแพ็ค a ได้ไหม ที่ทำให้ลูกค้าซื้อมากกว่าที่อยากซื้อเริ่มต้น

เช่น ถ้าอินพุตคือ l = 3; r = 4 เอาต์พุตจะเป็น True เพราะถ้า a = 5 อยากซื้อ 3 หรือ 4 ก็ซื้อแพ็คเต็ม

ขั้นตอนการแก้ปัญหา

if r / 2 >= l:
    return false
otherwise:
    return true

ตัวอย่างโค้ด

#include <bits/stdc++.h>
using namespace std;

bool solve(int l, int r) {
    if (r / 2 >= l)
        return false;
    else
        return true;
}

int main() {
    int l = 3;
    int r = 4;
    cout << solve(l, r) << endl;
}

อินพุต

3,4

เอาต์พุต

1