Функция вычисления факториала, неправильно работает с большими числами - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д