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

C ++で75%を維持するために出席する講義の最小数を見つけるためのプログラム


この問題では、現在のデータまでに開催されたクラスの総数と、学生が参加したクラスの数をそれぞれ表す2つの数字MとNが与えられます。私たちの仕事は、C ++で75%を維持するために、出席する講義の最小数を見つけるプログラムを作成することです。

問題の説明

これは、75%の出席率を維持するための大学生の最大の懸念事項の1つです。このプログラムは、75%の出席を得るために、学生が定期的に出席する講義の最小数を計算します。

問題を理解するために例を見てみましょう

例1

入力 :M =32、N =20

出力 :16

説明

75%以上の出席を達成するには、学生は少なくとも16回の講義に出席する必要があります。これにより、合計48の講義と出席した講義36になります。

パーセンテージ=36* 100/48 =75%

例1

入力 :M =14、N =4

出力 :26

説明

75%以上の出席を達成するには、学生は少なくとも26の講義に出席する必要があります。これにより、講義総数は40、出席講義数は30になります。

パーセンテージ=30* 100/40 =75%

ソリューションアプローチ

ここでは、学生が出席する必要のある講義の数を見つける必要があります。簡単な方法の1つは、両側に1つの講義を追加し、除算が0.75以上の場合は、追加を停止してイテレータの値を返すことです。

ソリューションの動作を説明するプログラム

#include <iostream>
using namespace std;
int maintainAtt(int M, int N) {
   int att = 0; while(1){
      if(((N+att)*100)/(M+att) >= 75){
         return att;
      }
      att++;
   }
}
int main() {
   int M = 23, N = 12;
   cout<<"The total number of lectures to be attended is "<<maintainAtt(M, N);
   return 0;
}

出力-

The total number of lectures to be attended is 21

このアプローチでは、次数O(n)の解の時間計算量を作成するループを使用します。ただし、カウントに数式を使用することで、O(1)時間計算量でそれを行うことができます。

75%の出席率を維持するために出席する最小講義の公式は

$$ \ square \ square \ square \ square \ left(\ frac {(0.75)+ \ square- \ square} {0.25} \ right)$$

ソリューションの動作を説明するプログラム

#include <iostream>
#include <math.h>
using namespace std;
int maintainAtt(int M, int N) {
   int att = ceil(((0.75*M) - N)/(0.25)); return att;
}
int main() {
   int M = 30, N = 11;
   cout<<"The total number of lectures to be attended is "<<maintainAtt(M, N);
   return 0;
}

出力

The total number of lectures to be attended is 46

  1. C++で対戦相手を捕まえるために必要な最小ステップ数を見つけるためのプログラム

    [u、v]の形式のツリーエッジのリストがあると仮定します。これは、uとvの間に無向エッジがあることを示します。また、xとyの2つの値があります。ノードxにいて、対戦相手がノードyにいる場合。最初のラウンドでは移動し、次のラウンドでは対戦相手が移動します。対戦相手は、ラウンドで移動しないことを選択できます。対戦相手を捕まえるのに必要な最小ラウンド数を見つける必要があります。 したがって、入力がedges =[[0、1]、[0、2]、[1、3]、[1、4]]、x =0、y =3のような場合、出力は3になります。最初と同じように、ノード0から1に移動します。その後、対戦相手は現在のノード3に留まり

  2. C ++プログラムで数の偶数の因数の合計を見つけるには?

    このプログラムは、すべての偶数因子を見つけ、これらの偶数因子の合計を計算して出力として表示するために使用されます。 例- Input : 30 Even dividers : 2+6+10+30 = 48 Output : 48 このために、私たちはすべての要因を見つけます。それらの偶数を見つけて合計を見つけます それ以外の場合は、式を使用して素因数を使用して因子の合計を求めます。 Sum of divisors = (1 + d11 + d12 ... d1a1) *(1 + d21 + d22 ... d2a2) *...........................* (1 +