Найти первый из номеров К, для которого выполняется условие - C (СИ)
Формулировка задачи:
Дано вещественное число е( >0). Последовательность вещественных чисел Ak определяется следующим образом:
A1=1, A2=2. Ak=(Ak-2 + 2Ak-1)/3. К=3,4, ... .
Найти первый из номеров К, для которого выполняеться условие
|Ak -Ak-1|< e,
И вывести этот номер, а также числа Ak-1 и Ak.
Решение задачи: «Найти первый из номеров К, для которого выполняется условие»
textual
Листинг программы
#include<iostream> #include<cmath> #include<vector> using namespace std; int func(int n) { int i; vector<int> dp(n+1); dp[1] = 1; dp[2] = 2; for (i = 3; i <= n; i++) { dp[i] = (dp[i-2]+2*dp[i-1])/3; } for(i=1;i<=n;i++){ cout<<dp[i]<<' '; } cout<<endl; for(i=1;i<=n;i++){ if(fabs(dp[i]-dp[i-1])<e){ cout<<dp[i-1];} } return dp[n]; } int main(){ float n=5; f(5); return 0; }
Объяснение кода листинга программы
В этом коде:
- Создается функция
func
, которая принимает целочисленный аргументn
. - Внутри функции объявляются три переменные:
i
- используется в циклах, инициализируется значением 3.dp
- вектор, который заполняется значениями на основе заданного условия.n
- копия аргумента функции, используется в цикле.
- Вектор
dp
инициализируется значениями для первых двух элементов (1 и 2). - С помощью двойного цикла
for
заполняется векторdp
значениями от 3 доn
.- Значение
dp[i]
вычисляется на каждой итерации цикла и записывается в вектор.
- Значение
- С помощью цикла
for
и оператораcout
выводятся все значения вектораdp
через пробел. - С помощью цикла
for
и оператораcout
выводятся номера элементов вектораdp
, для которых выполняется условиеfabs(dp[i]-dp[i-1])<e
. - В конце функции возвращается значение
dp[n]
. - В функции
main
создается переменнаяn
со значением 5. - Вызывается функция
func
с аргументомn
. - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д