код :
                  
                  
                  
                  
                  
                  #include <iostream> 
                  
                  
                  #include <string> 
                  
                  
                   
                  
                  
                  using namespace std; 
                  
                  
                   
                  
                  
                  int fak(unsigned long long int a) { 
                  
                  
                   
                  
                  
                    
                  
                  
                   if (a == 1 || a ==0) { 
                  
                  
                    return(1); 
                  
                  
                   } 
                  
                  
                   
                  
                  
                   
                  
                  
                   return a * fak(a - 1); 
                  
                  
                   
                  
                  
                   
                  
                  
                  } 
                  
                  
                   
                  
                  
                   
                  
                  
                  int main() 
                  
                  
                  { 
                  
                  
                   setlocale(LC_ALL, "ru"); 
                  
                  
                    
                  
                  
                   int a; 
                  
                  
                   
                  
                  
                   cout « "число» "; 
                  
                  
                   cin » a; 
                  
                  
                   
                  
                  
                   
                  
                  
                   cout « "факториал = "«fak(a) « endl; 
                  
                  
                   
                  
                  
                   
                  
                  
                   
                  
                  
                  }
                  
                  
                  
                  
                  
                  Однако при нахождении факториала более 12, программа работает некорректно. Подскажите пожалуйста, с чем это связано и где допустил ошибки.
                  
                  
                
С переполнением int
То, что long long тоже не поможет?
Поможет до какого-то предела, но у тебя функция int возвращает. Измени тип возврата на long long
Понял, программа заработала. Большое спасибо!
Обсуждают сегодня