Функция вычисления факториала, неправильно работает с большими числами - C (СИ)
Формулировка задачи:
Программа. Описать рекурсивную функцию вычисления n! - факториала числа n, основанную
на соотношении n! = n*(n-1)!.
Ребят посмотрите что тут не так пожалуйста ... большие числа неправильно считает
Листинг программы
- #include "stdafx.h"
- #include "stdio.h"
- #include "iostream"
- #include "conio.h"
- #include "locale.h"
- long fact(int x)
- {
- if (x == 1)
- return 1;
- if (x == 0)
- return 0;
- else
- return x*fact(x - 1);
- }
- int main()
- {
- int n;
- setlocale(LC_ALL, "RUS");
- do
- {
- printf("\nВведите положительное число: ");
- scanf("%d", &n);
- printf("%d! = %ld", n, fact(n));
- } while ( n > 0);
- getch();
- return 0;
- }
Решение задачи: «Функция вычисления факториала, неправильно работает с большими числами»
textual
Листинг программы
- include "stdafx.h"
- #include "stdio.h"
- #include "iostream"
- #include "conio.h"
- #include "locale.h"
- unsigned long long fact(unsigned long long x)
- {
- if (x == 1)
- return 1;
- if (x == 0)
- return 0;
- else
- return x*fact(x - 1);
- }
- int main()
- {
- int n;
- setlocale(LC_ALL, "RUS");
- do
- {
- printf("\nВведите положительное число: ");
- scanf("%d", &n);
- printf("%d! = %llu", n, fact(n));
- } while ( n > 0);
- getch();
- return 0;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д