Задача: Пусть [latex]a_{1}=4[/latex], b1=v, an=2bk-1+ak-1. bk=2a^2k-1+bk-1, k=2,3…
Даны действительные u, v, натуральное n.
Найти Е от n при k=1 (ak*bk)/(k+1)!
Тесты:
N | U | V | Результат | Вывод |
2 | 4 | 3 | 64 | тест пройден |
1 | 4 | 2 | 4 | тест пройден |
2 | 1 | 2 | 4 | тест пройден |
0 | 3 | 1 | 1 | тест пройден |
1 | 2 | 3 | 3 | тест пройден |
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
#include <iostream> using namespace std; long int fact(int M) { if (M == 0) // return 1; // возвращаем факториал от нуля, это 1 =) else // Во всех остальных случаях return M * fact(M - 1); // делаем рекурсию. } int main() { int n, u, v, a, b, t, sum; cout << "Введите n: "; cin >> n; cout << "Введите u: "; cin >> u; cout << "Введите v: "; cin >> v; int k; // счетчик цикла a = u; b = v; k = 1; sum = a * b / fact(k + 1); for (k = 2; k <= n; k++) // цикл { t = a; a = 2*b + a; b = 2 * t * t + b; sum = sum + (a * b / fact(k + 1)); } cout << "Сумма ряда равна: " << sum << endl; return 0; } |
Решение:
if (M == 0) // массив
return 1; // возвращаем факториал от нуля, это 1
else // Во всех остальных случаях
return M * fact(M — 1); // делаем рекурсию.
Пишем условия и формулы:
sum = a * b / fact(k + 1);
for (k = 2; k <= n; k++) // цикл
Цикл:
t = a;
a = 2*b + a;
b = 2 * t * t + b;
sum = sum + (a * b / fact(k + 1));
код задачи в ideone: http://ideone.com/1fNmWc
Программа вполне осмысленная. Молодец. Но есть множество недочётов:
— Формулы необходимо задавать в latex. Условие должно выглядеть точно также как в задачнике. Посмотрите в работах других студентов, как это выглядит. Для примера я написал Вам самую первую формулу.
— Ссылка на ideone.com должна быть именно ссылкой. Т.е. нажиматься. Используйте кнопку link в редакторе или задайте тег «а» — что умеете.
— Вы ошибочно указали, что это задача в рубрике «Массивы». Посмотрите в заголовке таблицы с заданиями и проставьте правильную рубрику. Метки тоже нужно исправить — нет здесь массивов.
— Факториал не нужно считать каждый раз заново. он сам накопится в цикле если соответствующую переменную домножать на очередное число. У Вас типовая задача. Вы можете посмотреть любую задачу с соседним номером и сделать также.
— Неправильные отступы.
— По условию u и v не являются целыми числами