Computer >> Máy Tính >  >> Lập trình >> C ++

Các dấu khác nhau có thể có cho n câu hỏi và dấu phủ định trong Chương trình C ++

Trong hướng dẫn này, chúng ta sẽ viết một chương trình để tìm các dấu khác nhau có thể có cho n câu hỏi đã cho với dấu tích cực và tiêu cực.

Giả sử chúng ta có 10 câu hỏi và mỗi câu mang 2 điểm cho câu trả lời đúng và -1 điểm cho câu trả lời phủ định. Mục đích của chúng tôi là tìm ra tất cả các cách có thể để học sinh có thể đạt điểm trong kỳ thi.

Hãy xem các bước để giải quyết vấn đề.

  • Khởi tạo số lượng câu hỏi, dấu dương cho câu trả lời đúng và dấu âm cho câu trả lời sai.

  • Khởi tạo một tập hợp để lưu trữ các dấu có thể có.

  • Viết hai vòng lặp bên trong từ 0 đến một số câu hỏi cho tất cả các cách có thể.

  • Giả sử biến vòng lặp đầu tiên là câu trả lời đúng, biến vòng lặp phần không được trả lời và các câu hỏi còn lại là sai.

  • Thêm các dấu vào tập hợp.

  • In kích thước của tập hợp.

Ví dụ

Hãy xem mã.

#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;
}

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

41

Kết luận

Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.