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++) {
         // 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

结论

如果您在本教程中有任何疑问,请在评论区提出。

更新于:2021年1月27日

283 次浏览

开启您的职业生涯

完成课程后获得认证

开始学习
广告