C/C++

C++ помогите сделать задания

1. Написать программу, в которой объявлены функции sum() и mult(), первая функция возвращает сумму двух чисел, а вторая возвращает произведение двух чисел. В функции main() попросить пользователя ввести два числа, после чего вывести результаты выполнения функций sum() и mult() для введённых чисел.
2. Написать функцию, которая уменьшает введённое пользователем целое число (НЕ его копию!) в два раза. Перегрузить эту функцию, добавив возможность уменьшать число типа double.
3. Написать программу, в которой будет рекурсивная функция подсчёта степени числа.
Могу предложить решения заданий с нечётными номерами. А так как они совершенно неинтересные, то для пикантности можно в них пооперировать с натуральными числами любой длины (это специальный тип данных безо всяких ограничений, которые есть в стандартных типах):
1)
 #include  
#include

using namespace std;

mpz_class sum(mpz_class x, mpz_class y)
{ return x + y; }


mpz_class mult(mpz_class x, mpz_class y)
{ return x * y; }

int main()
{
mpz_class a, b; while (true)
{
cout > a >> b;
cout
Сергей Трапезников
Сергей Трапезников
66 572
Лучший ответ
Дьявол-Двойка, Joker Бьет Двойку У ТЕБЯ В ПЕРВОМ НЕ ХВАТАЕТ ФИГУРНОЙ СКОБКИ ДЛЯ ЗАВЕРШЕНИЯ ГЛАВНОЙ ФУНКЦИИ!!!
дай угадаю, в синергии обучаешься на с++?)
Oto Zhorzholiani мм я так же подумал)
2)
#include <iostream>
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>

using namespace std;

int div2(int& x)
{
x /= 2;
return x;
}

double div2(double& x)
{
x /= 2;
return x;
}

int main()
{
int a = 26;
double b = 24.5;
cout << div2(a) << endl << div2(b) << endl;
system("pause");
}
3)
#include <iostream>
using namespace std;

unsigned long long power(const unsigned base, const unsigned ex)
{
return !ex ? 1ULL : base * power(base, ex - 1);
}

int main()
{
const auto base = 3U;
const auto ex = 9U;
const auto result = power(base, ex);
cout << base << "^" << ex << " = " << result << '\n';
}