C/C++
Нужна помощь при решении задачи в c++
Дано три числа a,b,c найти сумму факториалов a!+b!+c!a!+b!+c!. Для расчета факториала написать функцию
#include <iostream>
#include <cstdlib>
using namespace std;
int factorial(int num)
{
if(num < 0)
{
cerr << "Неверное значение для факториала!" << endl;
exit(1);
}
int f = 1;
for(int x = 2; x <= num; x++)
f *= x;
return f;
}
int main()
{
int a,b,c;
cout << "a = ";
cin >> a;
cout << "b = ";
cin >> b;
cout << "c = ";
cin >> c;
cout << "a! + b! + c! = ";
cout << a << "! + " << b << "! + " << c << "! = ";
cout << factorial(a) + factorial(b) + factorial(c);
cout << '.' << endl;
return 0;
}
#include <cstdlib>
using namespace std;
int factorial(int num)
{
if(num < 0)
{
cerr << "Неверное значение для факториала!" << endl;
exit(1);
}
int f = 1;
for(int x = 2; x <= num; x++)
f *= x;
return f;
}
int main()
{
int a,b,c;
cout << "a = ";
cin >> a;
cout << "b = ";
cin >> b;
cout << "c = ";
cin >> c;
cout << "a! + b! + c! = ";
cout << a << "! + " << b << "! + " << c << "! = ";
cout << factorial(a) + factorial(b) + factorial(c);
cout << '.' << endl;
return 0;
}
Иван Яблонский
Спасибо большое !!!
Николай Цветанский
А меня так задолбало ограничение на диапазон целых чисел стандартных типов, что я отныне и навсегда буду при любом подходящем случае вставлять библиотеку <gmp.h> чтобы можно было работать с целыми числами любой длины (как в Питоне). Кстати, эта библиотека есть не только в C/C++, но даже почему-то и в PHP. А иначе даже, например, 21! точно не посчитать...
Чтоб можно было брать факториалы неотрицательных целых чисел больших двадцати:
#include <gmp.h>
#include <iostream>
using namespace std;
mpz_t p;
void f(unsigned long n)
{ mpz_init_set_ui(p, 1);
for (int i = 1; i <= n; i++) mpz_mul_ui(p, p, i); }
int main()
{ mpz_t sum; unsigned long a, b, c;
string blue = "\033[34m", magenta = "\033[35m",
biruze = "\033[36m", red = "\033[31m",
yellow = "\033[33m";
for (;;)
{ mpz_init_set_ui(sum, 0);
cout << blue << "a b c: " << red;
cin >> a >> b >> c;
f(a); mpz_add(sum, sum, p);
f(b); mpz_add(sum, sum, p);
f(c); mpz_add(sum, sum, p);
cout << biruze << a << "!+" << b <<
"!+" << c << '!' << yellow << " = " <<
magenta << mpz_get_str(NULL, 10, sum)
<< endl; } getchar(); }

#include <gmp.h>
#include <iostream>
using namespace std;
mpz_t p;
void f(unsigned long n)
{ mpz_init_set_ui(p, 1);
for (int i = 1; i <= n; i++) mpz_mul_ui(p, p, i); }
int main()
{ mpz_t sum; unsigned long a, b, c;
string blue = "\033[34m", magenta = "\033[35m",
biruze = "\033[36m", red = "\033[31m",
yellow = "\033[33m";
for (;;)
{ mpz_init_set_ui(sum, 0);
cout << blue << "a b c: " << red;
cin >> a >> b >> c;
f(a); mpz_add(sum, sum, p);
f(b); mpz_add(sum, sum, p);
f(c); mpz_add(sum, sum, p);
cout << biruze << a << "!+" << b <<
"!+" << c << '!' << yellow << " = " <<
magenta << mpz_get_str(NULL, 10, sum)
<< endl; } getchar(); }

#include <iostream>
#include <cstdlib>
using namespace std;
int factorial(int num)
{
if(num < 0)
{
cerr << "Неверное значение для факториала!" << endl;
exit(1);
}
int f = 1;
for(int x = 2; x <= num; x++)
f *= x;
return f;
}
int main()
{
int a,b,c;
cout << "a = ";
cin >> a;
cout << "b = ";
cin >> b;
cout << "c = ";
cin >> c;
cout << "a! + b! + c! = ";
cout << a << "! + " << b << "! + " << c << "! = ";
cout << factorial(a) + factorial(b) + factorial(c);
cout << '.' << endl;
return 0;
}
#include <cstdlib>
using namespace std;
int factorial(int num)
{
if(num < 0)
{
cerr << "Неверное значение для факториала!" << endl;
exit(1);
}
int f = 1;
for(int x = 2; x <= num; x++)
f *= x;
return f;
}
int main()
{
int a,b,c;
cout << "a = ";
cin >> a;
cout << "b = ";
cin >> b;
cout << "c = ";
cin >> c;
cout << "a! + b! + c! = ";
cout << a << "! + " << b << "! + " << c << "! = ";
cout << factorial(a) + factorial(b) + factorial(c);
cout << '.' << endl;
return 0;
}
Похожие вопросы
- Программирование, нужна помощь в решение задачи! На си или си++
- Нужна помощь с выполнением заданий в C++
- Мне нужна помощь с одной задачкой по c++.
- Решение задачи на C++.
- Нужна помощь в программировании на языке C++
- Задача по c++ на векторы. Часть программы написана. Нужны правки.
- Нужна помощь с задачей по c++
- Задача по C++
- Задача на C++ (Остатки).
- C++.Нужна помощь в написании кода.