ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่ค้นหาคะแนนที่เป็นไปได้ที่แตกต่างกันสำหรับคำถาม n ข้อที่ให้มาโดยมีเครื่องหมายบวกและลบ
สมมติว่าเรามีคำถาม 10 ข้อ โดยแต่ละข้อมี 2 คะแนนสำหรับคำตอบที่ถูกต้อง และ -1 คะแนนสำหรับคำตอบเชิงลบ เป้าหมายของเราคือค้นหาวิธีที่เป็นไปได้ทั้งหมดที่นักเรียนสามารถทำคะแนนในการสอบได้
มาดูขั้นตอนการแก้ปัญหากัน
-
เริ่มต้นจำนวนคำถาม เครื่องหมายบวกสำหรับคำตอบที่ถูกต้อง และเครื่องหมายลบสำหรับคำตอบที่ผิด
-
เริ่มต้นชุดเพื่อเก็บเครื่องหมายที่เป็นไปได้
-
เขียนลูปภายในสองวงจาก 0 ถึงจำนวนคำถามในทุกวิถีทางที่เป็นไปได้
-
สมมติว่าตัวแปรลูปแรกเป็นคำตอบที่ถูกต้อง ตัวแปรลูปส่วนไม่ได้รับคำตอบ และคำถามที่เหลือไม่ถูกต้อง
-
เพิ่มเครื่องหมายให้กับชุด
-
พิมพ์ขนาดของชุด
ตัวอย่าง
มาดูโค้ดกันเลย
#include<bits/stdc++.h> using namespace std; int findPossibleMarksCount(int n, int x, int y) { set<int> marks; for (int i = 0; i <= n; i++) { for (int j = 0; j <= n; j++) { // i = correct // j = not_answered marks.insert((x * i) - ((n - i - j) * y)); } } return marks.size(); } int main() { int n = 20, x = 2, y = -1; cout << findPossibleMarksCount(n, x, y) << endl; }
ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
41
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น