Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรมหาจำนวนการบรรยายขั้นต่ำที่จะเข้าร่วมเพื่อรักษา 75% ใน C++


ในปัญหานี้ เราได้รับตัวเลข M และ N สองตัว ซึ่งแสดงถึงจำนวนชั้นเรียนทั้งหมดที่จัดจนถึงข้อมูลปัจจุบัน และจำนวนชั้นเรียนที่นักเรียนเข้าร่วมตามลำดับ งานของเราคือสร้างโปรแกรมเพื่อค้นหาจำนวนการบรรยายขั้นต่ำที่จะเข้าร่วมเพื่อรักษา 75% ใน C ++

คำอธิบายปัญหา

นี่เป็นหนึ่งในความกังวลที่ใหญ่ที่สุดของนักศึกษาที่จะต้องรักษาการเข้าเรียน 75% โปรแกรมนี้คำนวณจำนวนขั้นต่ำของการบรรยายที่นักเรียนจะเข้าร่วมเป็นประจำเพื่อให้ได้ผู้เข้าร่วม 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%

แนวทางการแก้ปัญหา

ที่นี่ เราต้องหาจำนวนการบรรยายที่นักเรียนต้องเข้าร่วม วิธีง่ายๆ วิธีหนึ่งคือการเพิ่มหนึ่งการบรรยายทั้งสองด้าน และเมื่อการหารเท่ากับ 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