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

รหัส C++ เพื่อค้นหาผู้ชนะและผู้ไม่ใช่ผู้ชนะที่แตกต่างกันในการแข่งขัน


สมมติว่าเรามีตัวเลขสองตัว n และ k มีนักเรียน n คนอยู่ในการแข่งขัน บางคนจะได้รับของที่ระลึก บางคนจะได้รับใบรับรอง และคนอื่น ๆ จะไม่ได้รับอะไรเลย ผู้ที่ได้รับบางสิ่งบางอย่างเรียกว่าผู้ชนะ แต่มีกฎเกณฑ์บางประการในการนับจำนวนของที่ระลึกและใบรับรอง จำนวนใบรับรองต้องมากกว่าจำนวนของที่ระลึกถึง k เท่า จำนวนผู้ชนะต้องไม่เกิน n/2 นอกจากนี้ยังอาจไม่มีผู้ชนะ เราต้องระบุจำนวนผู้ชนะสูงสุดตามกฎเหล่านี้ จากนั้นหาจำนวนนักเรียนพร้อมของที่ระลึก จำนวนนักเรียนที่มีใบรับรอง และจำนวนนักเรียนที่ไม่เป็นผู้ชนะ

ดังนั้น ถ้าอินพุตเป็นเหมือน n =18; k =2 แล้วผลลัพธ์จะเป็น [3, 6, 9]

ขั้นตอน

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

x := (n / 2) / (1 + k)
return x, (k * x) and (n - (x + (k * x)))

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include <bits/stdc++.h>
using namespace std;
void solve(int n, int k){
   int x = (n / 2) / (1 + k);
   cout << x << ", " << (k * x) << ", " << (n - (x + (k * x)));
}
int main(){
   int n = 18;
   int k = 2;
   solve(n, k);
}

อินพุต

8, 2

ผลลัพธ์

3, 6, 9