Найти первый из номеров К, для которого выполняется условие - 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;
}

Объяснение кода листинга программы

В этом коде:

  1. Создается функция func, которая принимает целочисленный аргумент n.
  2. Внутри функции объявляются три переменные:
    • i - используется в циклах, инициализируется значением 3.
    • dp - вектор, который заполняется значениями на основе заданного условия.
    • n - копия аргумента функции, используется в цикле.
  3. Вектор dp инициализируется значениями для первых двух элементов (1 и 2).
  4. С помощью двойного цикла for заполняется вектор dp значениями от 3 до n.
    • Значение dp[i] вычисляется на каждой итерации цикла и записывается в вектор.
  5. С помощью цикла for и оператора cout выводятся все значения вектора dp через пробел.
  6. С помощью цикла for и оператора cout выводятся номера элементов вектора dp, для которых выполняется условие fabs(dp[i]-dp[i-1])<e.
  7. В конце функции возвращается значение dp[n].
  8. В функции main создается переменная n со значением 5.
  9. Вызывается функция func с аргументом n.
  10. Программа завершается.

Оцени полезность:

8   голосов , оценка 4.375 из 5
Похожие ответы