решить задачу c++ 2. Задача 3n+1
На вход программе подается целое положительное число n. Если оно четное, делим на 2, если нечетное, то умножаем на 3 и прибавляем 1. С полученным числом делаем то же самое и так далее, пока не получим 1 (есть математическая недоказанная гипотеза Коллатца, которое утверждает, что при любом начальном числе всегда когда-нибудь да получится единица). Вам надо вывести последовательность всех промежуточных результатов до единицы.
ввод: 5
вывод: 5 16 8 4 2 1
ввод: 7
вывод: 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
ввод: 2
вывод: 2 1
ввод: 1
вывод: 1
3.Таблица чисел
Выведите все нечетные числа от 1 до 100, по 10 штук в каждой строке, разделенные пробелами.
У этой программы нет входа. Выход выглядит примерно так:
1 3 5 7 9 11 13 15 17 19
21 23 25 27 29 31 33 35 37 39
41 ...
4. Ввести натуральное число N и посчитать сумму первых N членов последовательности 1/(k!), где k=1,2,...,N
ввод: 1
вывод: 1
ввод: 10
вывод: 2.718281526
ввод: 20
вывод: 2.718281828
требование: написать и использовать функцию для вычисления факториала.
требование: включите header file (заголовочный файл) iomanip и написать следующую строку(до вывода результата): std::cout << std::setprecision(10);
Задание 2.
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int n;
cin >> n;
while(true)
{
cout << n << " ";
if (n == 1)
{
break;
}
else if (n % 2 == 0)
{
n /= 2;
}
else if (n % 2 == 1)
{
n *= 3;
n++;
}
}
cout << endl;
return 0;
}
Задание 3.
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
for (int i = 1; i < 100; i++)
{
cout << i << " ";
if (i % 20 == 19)
{
cout << endl;
}
}
return 0;
}
Задание 4.
#include <iostream>
#include <iomanip>
using namespace std;
int factorial(int n)
{
if (n == 1)
{
return 1;
}
return n * factorial(n - 1);
}
int main()
{
setlocale(LC_ALL, "rus");
int N;
cin >> N;
double sum = 0;
for (int i = 1; i <= N; i++)
{
sum += 1.0 / factorial(i);
}
cout << setprecision(10);
cout << sum << endl;
return 0;
}
Объяснение: