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

นับจำนวนแฟกทอเรียลในช่วงที่กำหนดใน C++


เราได้รับช่วงโดยเริ่มจากค่าจำนวนเต็มที่ถือโดยตัวแปร สมมติว่าเริ่มต้นจนถึงสิ้นสุดตัวแปร และภารกิจคือการนับจำนวนรวมของตัวเลขแฟกทอเรียลที่มีอยู่ในช่วงที่กำหนด

จำนวนแฟกทอเรียลคืออะไร

แฟกทอเรียลของตัวเลขคำนวณโดยการคูณตัวเลขในตัวเลขโดยลดค่าของหลักลง 1 ซึ่งแสดงด้วยสัญลักษณ์ '!' เช่น 0!, 1!, 2!, 3!, 5!,.... ฯลฯ แฟกทอเรียลของ 0! และ 1! เป็น 1. เสมอ

I.e. factorial of 2 = 2 * (2-1) = 2 * 1 = 2
      factorial of 3 = 3 * (3-1) * (2-1) = 3 * 2 * 1 = 6

ตัวอย่าง

Input − start = 5, end = 600
Output − Count of factorial numbers are 3

คำอธิบาย − เนื่องจากมีตัวเลข 3 ตัวที่มีตัวเลขแฟกทอเรียลอยู่ในช่วง 5-600

Input − start = 1, end = 100
Output − Count of factorial numbers are 5

คำอธิบาย − เนื่องจากมีตัวเลข 5 ตัวที่มีตัวเลขแฟกทอเรียลอยู่ในช่วง 5-600

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • ป้อนช่วงและเก็บไว้ในตัวแปรเริ่มต้นและสิ้นสุด

  • ใช้ตัวแปรอื่น 'fact' เพื่อเก็บค่าแฟกทอเรียลและเริ่มต้นด้วย 1 และตัวแปรชั่วคราว 'i' เพื่อเพิ่มจำนวนตัวเลข

  • เริ่มวนซ้ำ ในขณะที่ fact น้อยกว่าจุดเริ่มต้น และคูณความจริงกับ i เพื่อคำนวณแฟกทอเรียลและยังเพิ่มค่าของ i ต่อไป

  • เริ่มวนรอบอื่น ในขณะที่ fact มีค่าน้อยกว่าตัวแปร end และเพิ่มค่าของตัวแปร r ต่อไป และตั้งค่า fact เป็น fact *i และเพิ่มค่าของ i ต่อไป

  • ตอนนี้ คืนค่าของ r ที่ถือจำนวนรวมของจำนวนแฟกทอเรียลทั้งหมด

  • พิมพ์ผลลัพธ์

ตัวอย่าง

#include <iostream>
using namespace std;
// To count the number of factorials
int factorials(int start, int end){
   // Starting from 1 and find the first factorial number
   // 'fact' greater than or equal to 'start'
   int fact = 1, i = 1;
   while (fact < start){
      fact = fact*i;
      i++;
   }
   // r to count factorial numbers in range start to end
   int r = 0;
   while (fact <= end){
      r++;
      fact = fact*i;
      i++;
   }
   // Return the count of factorials in range
   return r;
}
int main(){
   int start = 5, end = 600;
   cout << "Count of factorial numbers are " << factorials(start, end);
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

Count of factorial numbers are 3