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

Đếm số giai thừa trong một phạm vi nhất định trong C ++

Chúng tôi được cung cấp phạm vi bắt đầu từ một giá trị số nguyên được giữ bởi một biến, giả sử bắt đầu cho đến khi biến kết thúc và nhiệm vụ là đếm tổng số giai thừa có sẵn trong phạm vi đã cho.

Số giai thừa là gì

Giai thừa của một số được tính bằng cách nhân các chữ số trong một số đồng thời giảm giá trị của chữ số đó đi 1. Nó được ký hiệu bằng ký hiệu '!' Tức là 0 !, 1 !, 2 !, 3 !, 5!, ... ,vân vân. Giai thừa của 0! và 1! luôn luôn là 1.

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

Ví dụ

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

Giải thích - Vì có 3 số có sẵn có giai thừa trong phạm vi 5-600.

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

Giải thích - Vì có 5 số có sẵn có giai thừa trong phạm vi 5-600.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Nhập phạm vi và lưu trữ trong các biến bắt đầu và kết thúc

  • Lấy một biến khác, "fact" để lưu trữ các giá trị giai thừa và khởi tạo nó bằng 1 và một biến tạm thời, "i" để tăng số lượng.

  • Bắt đầu vòng lặp, trong khi thực tế nhỏ hơn bắt đầu và tiếp tục nhân dữ kiện với i để tính giai thừa và đồng thời, tiếp tục tăng giá trị của i

  • Bắt đầu một vòng lặp khác, trong khi thực tế nhỏ hơn bằng với biến kết thúc và tiếp tục tăng giá trị của một biến r và tiếp tục đặt thực tế thành thực tế * i và tiếp tục tăng giá trị của i

  • Bây giờ, hãy trả về giá trị của r đang chứa tổng số tổng số các số giai thừa

  • In kết quả.

Ví dụ

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

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Count of factorial numbers are 3