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

Giá trị lớn nhất của một số nguyên mà giai thừa có thể được tính trên máy trong C ++

Trong bài toán này, chúng ta cần tạo một chương trình để tìm Giá trị lớn nhất của một số nguyên mà giai thừa có thể được tính trên máy trong C ++.

Giai thừa của một số là một giá trị lớn, vì nó là tích của tất cả các giá trị đứng trước nó. Và C ++ chỉ có thể xử lý các giá trị lớn đến một giá trị nhất định bằng cách sử dụng hàm sẵn có của nó. Chúng tôi cần tìm ra hạn chế này.

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

Chúng tôi sẽ chỉ sử dụng thuộc tính của các kiểu dữ liệu là khi các số vượt quá giá trị lớn nhất, một số âm sẽ được trả về.

Chúng tôi sẽ sử dụng long int là kiểu dữ liệu cơ bản lớn nhất.

Ví dụ

#include <iostream>
using namespace std;
int calcMaxFactVal(){
   int maxVal = 1;
   long long int maxFactorial = 1;
   while (true){
      if (maxFactorial < 0)
         return (maxVal - 1);
      maxVal++;
      maxFactorial *= maxVal;
   }
   return - 1;
}
int main(){
   cout<<"The maximum value of an integer for which factorial can be
   calculated on machine is "<<calcMaxFactVal();
   return 0;
}

Đầu ra

The maximum value of an integer for which factorial can be calculated on
machine is 20