C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++プログラムでのn個の質問とネガティブマーキングの異なる可能なマーク


このチュートリアルでは、正と負のマークが付いた、指定されたn個の質問に対して異なる可能性のあるマークを見つけるプログラムを作成します。

10個の質問があり、それぞれに正解の場合は2マーク、否定回答の場合は-1マークがあるとします。私たちの目的は、学生が試験で採点できるすべての可能な方法を見つけることです。

問題を解決するための手順を見てみましょう。

  • 質問の数を初期化し、正解の場合は正のマーク、間違った答えの場合は負のマークを付けます。

  • セットを初期化して、可能なマークを保存します。

  • 考えられるすべての方法について、0からいくつかの質問までの2つの内部ループを記述します。

  • 最初のループ変数が正解であり、セクションループ変数が回答されておらず、残りの質問が正しくないと仮定します。

  • セットにマークを追加します。

  • セットのサイズを印刷します。

コードを見てみましょう。

#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

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. C++での8進数から10進数への変換のプログラム

    入力として8進数を指定すると、タスクは指定された8進数を10進数に変換することです。 コンピューターの10進数は10進数で表され、8進数は0から7までの8進数で表されますが、10進数は0から9までの任意の数字にすることができます。 8進数を10進数に変換するには、次の手順に従います- 余りから右から左に数字を抽出し、それを0から始まる累乗で乗算し、(桁数)–1まで1ずつ増やします。 8進数から2進数に変換する必要があるため、8進数の基数は8であるため、累乗の基数は8になります。 指定された入力の桁にベースとパワーを掛けて、結果を保存します 乗算されたすべての値を加算して、10進数になる

  2. C++での立方体の体積と表面積のプログラム

    キューブとは何ですか? 立方体は、正方形の6つの面を持つ3次元オブジェクトです。つまり、同じ長さと幅の辺があります。立方体は、次のプロパティを持つ唯一の正六面体です- 6つの顔 12個のエッジ 8つの頂点 以下は立方体の図です 問題 側面を考えると、タスクは立方体の総表面積と体積を見つけることです。ここで、表面積は面が占めるスペースであり、体積は形状に含めることができるスペースです。 立方体の表面積と体積を計算するには、次の式があります- 表面積=6*側面*側面 ボリューム=サイド*サイド*サイド 例 Input-: side=3 Output-: volume of c