Вычисление цепной дроби

Уровень сложности:

Используя показатели функции вычислить цепную дробь. Количество елементов дроби надо задавать с клавиатуры.

1+1/(1+1/(1+1/(1+1/….)))

Например, возьмем количество элементов дроби, равное — 6. Вот такое выражение должно у вас получится: 1+1/(1+1/(1+1/(1+1/(1+1/(1+1))))). А вот и правильный ответ: 1,61538.

Решение предоставил — Андрей Калачёв.

#include <iostream>

using namespace std;

int main()
{
    double ans=2.0;
    int num;
    cout<<"How much? ";
    cin>>num;
    for(int i=1; i<num; i++) ans=1+1/ans;
    cout<<ans;
    system("pause");
    return 0;
}

Программу тщательно не проверял, так-что, если что-то не так работает, пишите в комментариях. Вот результат работы программы для количества элементов дроби — 6.

CppStudio.com
How much? 6
1.61538
Следующие статьи помогут вам в решении данной задачи:
Автор: Marienko L.
Дата: 10.12.2012
Поделиться:

Комментарии

  1. Alexander Trousevich

    // Language: rust. Details: rust-lang.org
    use std::io;
    
    fn chain (num: u32) -> f64 {
        match num {
            0 => panic!("0 is NOT allowed!"),
            1 => 2.0,
            _ => 1.0 + 1.0/(chain(num-1))
        }
    }
    
    fn main() {
        let mut buf = String::new();
        io::stdin().read_line(&mut buf).expect("Invalid input");
        let num = buf.trim().parse().expect("Invalid Input");
        println!("num is {} and it's chain is {}", num, chain(num));
    }
  2. Eduard_P

    Eduard_P

    Задача не сложная. Например построение ромба в разделе «легкие» будет посложнее.

    #include <cstdlib>
    #include <iostream>
    
    
    using namespace std;
    
    /*
     * 
     */
    int main(int argc, char** argv) {
        int n, i;
        float y = 1.0;
        cout << "Введите количество элементов дроби 1+1/(1+1/(1+1/(1+1/….))): ";
        cin >> n;
        for (i=1; i<=n; i++)
            y = 1 + 1/y;
        cout << y << "\n";
        return 0;
    }

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.