C ++程序中n个问题的不同可能标记和否定标记

在本教程中,我们将编写一个程序,为给定的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++) {
         // 我=正确
         // 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

结论