помогите с программой (С++)
запрос натурального числа N путем проверки всех чисел в диапазоне 1...N :
A : приближенно вычислить факториал N! = 123.....N
например, N = 5, то есть 5!=120
B: вычислить сумму ряда : (закреп)
например, N=5, тогда это 0,783
C: найдите максимальное число, квадрат которого оканчивается на 24
например, N=20, тогда 18 (1818= 324)
E: найдите число Фибоначчи N
![](https://st.uroker.com/files/712/712b7ee42efd9a1aae00dff11aad402b.png)
Ответы
Ответ:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n;
cout << "Введите натуральное число N: ";
cin >> n;
// Решение задачи A: вычисление факториала N
long long factorial = 1;
for (int i = 2; i <= n; i++) {
factorial *= i;
}
cout << "Факториал " << n << "! = " << factorial << endl;
// Решение задачи B: вычисление суммы ряда
double sum = 0;
for (int i = 1; i <= n; i++) {
sum += 1.0 / pow(i, 2);
}
cout << "Сумма ряда = " << sum << endl;
// Решение задачи C: поиск максимального числа, квадрат которого оканчивается на 24
int max_number = -1;
for (int i = 1; i <= n; i++) {
int square = pow(i, 2);
if (square % 100 == 24 && square > max_number) {
max_number = square;
}
}
if (max_number == -1) {
cout << "Нет чисел, квадрат которых оканчивается на 24" << endl;
} else {
cout << "Максимальное число, квадрат которого оканчивается на 24 = " << sqrt(max_number) << endl;
}
// Решение задачи E: нахождение числа Фибоначчи N
int a = 0, b = 1;
for (int i = 2; i <= n; i++) {
int c = a + b;
a = b;
b = c;
}
cout << "Число Фибоначчи " << n << " = " << b << endl;
return 0;
}
A:
Для приближенного вычисления факториала можно воспользоваться формулой Стирлинга:
N! ≈ √(2πN) * (Н/д)^Н
где e - число Эйлера (приблизительно равно 2.71828), π - число Пи (приблизительно равно 3.14159).
Однако, такое приближение будет точно лишь для больших значений N, поэтому для малых N рекомендуется вычислять факториал N! напрямую.
B:
Сумма ряда задается формулой:
S = 1/1! + 2/2! + 3/3! + ... + Н/Н!
где ! обозначает факториал числа.
Для вычисления суммы можно использовать цикл, последовательно суммируя каждый член ряда.
C:
Чтобы число квадрата которого оканчивается на 24, нужно, чтобы остаток от деления этого числа на 100 был равен 24. Остаток от деления квадрата числа на 100 может быть 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 или 96. Значит, последние цифры искомого числа могут быть только 2 или 8. Чтобы найти максимальное такое число, можно перебрать все двузначные числа, заканчивающиеся на 2 или 8, и проверить, является ли квадрат такого числа числом, оканчивающимся на 24.
E:
Числа Фибоначчи задаются рекуррентной формулой:
F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) для n > 1.
Для вычисления n-го числа Фибоначчи можно использовать цикл или рекурсивную функцию.
A:
Для вычисления факториала N! можно использовать цикл для:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int N = 5;
int fact = 1;
for (int i = 1; i <= N; i++) {
fact *= i;
}
cout << "Factorial of " << N << " is " << fact << endl;
return 0;
}