Рассматривается множество целых чисел, принадлежащих числовому отрезку [3912; 9193], которые удовлетворяют следующим условиям: − сумма цифр числа кратна 9;
− шестнадцатеричная запись числа не заканчивается на 21.
Ответы на вопрос:
которые удовлетворяют следующим условиям:
− сумма цифр числа кратна 9;
− шестнадцатеричная запись числа не заканчивается на 21.
Найдите количество таких чисел и максимальное из них.
Объяснение:
Надеюсь облогадаришь
Объяснение:
Перед непосредственно кодом нужно объяснить немного математики, а конкретно формирование суммы ряда.
Начнём с того, что в самом задании логическая ошибка. n-ый член ряда вычисляется по формуле
но в случае, если n=1, должно получится
В то время как мы видим, что в задании этот член ряда имеет положительный знак. Но мы будем следовать заданию и оставим его положительным, вынеся в отдельное условие.
Далее, каждый раз пересчитывать факториал до n-ного члена нерационально, поэтому нам нужно вывести формулу, которая будет считать следующий член ряда из предыдущего. В нашем случае мы должны будем постоянно домножать предыдущий член на некоторую постоянную функцию. Вот и найдём её. Во-первых, нам нужно обеспечить чередование знака, то есть если наша "константа" будет отрицательной, этого будет достаточно. Во-вторых, числитель дроби каждый раз увеличивается в x² раз, значит на это значение мы и будем домножать. Уже получилось -x². И в-третьих, знаменатель и тут нужно было быть чуть внимательнее, поскольку (2n)! ≠ (2(n-1))! * 2n. Выражение имеет другой вид (2n)! = (2(n-1))!*(2n-1)*2n
Итого имеем формулу n-ного члена в зависимости от n-1
Вот эту формулу мы и будем использовать для нахождения членов последовательности начиная со второго.
Получается вот такой код (см. ниже). А так же скриншот. Обратите внимание на отступы, потому как ваш код в задании, очень плохо читается. Учитесь сразу программировать красиво.
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
int main()
{
double a = 0.1, b=1.0, h=(b-a)/10.0, S,Y,x,p;
int i, n = 80;
x = a;
do
{
p = 1;
S = p;
for (i = 1; i <= n; i++)
{
if (i == 1) p *= pow(x, 2.0) / 2;
else p *= (-1) * pow(x, 2.0) / (2*i*(2*i - 1.0));
S += p;
}
Y = cos(x);
cout << setw(15) << x << setw(15) << Y << setw(15) << S << endl;
x += h;
}
while (x <= b + h / 2.0);
system("pause");
}
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
koshka9901.08.2021 13:52
-
Nikki2106.04.2022 06:48
-
ната55555512.04.2020 03:28
-
Hackerywka16.06.2020 05:19
-
vavilovaev8605.08.2022 13:50
-
Ali95418.02.2023 15:26
-
Фикус0416.03.2023 14:46
-
19zm19zm17.02.2021 07:19
-
крот52130.07.2020 07:42
-
DarkDanilka24.04.2022 16:42
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.