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

Chương trình tìm số lượng bài giảng tối thiểu để tham dự để duy trì 75% trong C ++

Trong bài toán này, chúng ta được đưa ra hai số M và N biểu thị tổng số lớp học được tổ chức cho đến dữ liệu hiện tại và số lớp học của học sinh tương ứng. Nhiệm vụ của chúng tôi là tạo một chương trình để tìm số lượng bài giảng tối thiểu để tham dự để duy trì 75% trong C ++.

Mô tả vấn đề

Đây là một trong những mối quan tâm lớn nhất của sinh viên đại học để duy trì 75% tỷ lệ đi học. Chương trình này tính toán số lượng bài giảng tối thiểu mà sinh viên phải tham gia thường xuyên để đạt được 75% tỷ lệ tham dự.

Hãy lấy một ví dụ để hiểu vấn đề,

Ví dụ 1

Đầu vào :M =32, N =20

Đầu ra :16

Giải thích

Để đạt được tối thiểu 75% thời gian tham dự, sinh viên phải tham dự ít nhất 16 bài giảng. Điều này sẽ làm cho tổng số bài giảng 48 và bài giảng đã tham dự 36.

Phần trăm =36 * 100/48 =75%

Ví dụ 1

Đầu vào :M =14, N =4

Đầu ra :26

Giải thích

Để đạt được mức tham dự tối thiểu 75%, sinh viên phải tham dự ít nhất 26 bài giảng. Điều này sẽ làm cho tổng số bài giảng là 40 và bài giảng đã tham dự là 30.

Phần trăm =30 * 100/40 =75%

Phương pháp tiếp cận giải pháp

Ở đây, chúng ta cần tìm số lượng bài giảng mà sinh viên cần tham dự. Một cách đơn giản là thêm một bài giảng vào cả hai phía và khi phép chia là 0,75 trở lên thì ngừng thêm và trả về giá trị của trình lặp.

Chương trình minh họa hoạt động của giải pháp của chúng tôi,

Ví dụ

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

Đầu ra−

The total number of lectures to be attended is 21

Cách tiếp cận này sử dụng một vòng lặp làm cho độ phức tạp về thời gian của nghiệm có bậc là O (n). Nhưng chúng ta có thể làm điều đó với độ phức tạp thời gian là O (1) bằng cách sử dụng công thức toán học cho số đếm.

Công thức cho bài giảng tối thiểu phải tham dự để duy trì 75% người tham dự là

$$ \ square \ square \ square \ square \ left (\ frac {(0,75) + \ square- \ square} {0,25} \ right) $$

Chương trình minh họa hoạt động của giải pháp của chúng tôi,

Ví dụ

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

Đầu ra

The total number of lectures to be attended is 46