Функция вычисления факториала, неправильно работает с большими числами - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Программа. Описать рекурсивную функцию вычисления n! - факториала числа n, основанную на соотношении n! = n*(n-1)!. Ребят посмотрите что тут не так пожалуйста ... большие числа неправильно считает
Листинг программы
  1. #include "stdafx.h"
  2. #include "stdio.h"
  3. #include "iostream"
  4. #include "conio.h"
  5. #include "locale.h"
  6. long fact(int x)
  7. {
  8. if (x == 1)
  9. return 1;
  10. if (x == 0)
  11. return 0;
  12. else
  13. return x*fact(x - 1);
  14. }
  15. int main()
  16. {
  17. int n;
  18. setlocale(LC_ALL, "RUS");
  19. do
  20. {
  21. printf("\nВведите положительное число: ");
  22. scanf("%d", &n);
  23. printf("%d! = %ld", n, fact(n));
  24.  
  25. } while ( n > 0);
  26. getch();
  27. return 0;
  28. }

Решение задачи: «Функция вычисления факториала, неправильно работает с большими числами»

textual
Листинг программы
  1. include "stdafx.h"
  2. #include "stdio.h"
  3. #include "iostream"
  4. #include "conio.h"
  5. #include "locale.h"
  6.  
  7. unsigned long long fact(unsigned long long x)
  8. {
  9.    
  10.     if (x == 1)
  11.         return 1;
  12.     if (x == 0)
  13.         return 0;
  14.     else
  15.         return x*fact(x - 1);
  16. }
  17.  
  18. int main()
  19. {
  20.     int n;
  21.     setlocale(LC_ALL, "RUS");
  22.     do
  23.     {
  24.         printf("\nВведите положительное число: ");
  25.         scanf("%d", &n);
  26.         printf("%d! = %llu", n, fact(n));
  27.        
  28.        
  29.     } while ( n > 0);
  30.     getch();
  31.     return 0;
  32. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы