Используя показатели функции вычислить цепную дробь. Количество елементов дроби надо задавать с клавиатуры.
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
Комментарии
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)); }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; }