Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
nxmatrix
1 / 1 / 0
Регистрация: 06.10.2012
Сообщений: 6
#1

Вычисление цепных дробей - C++

06.10.2012, 10:10. Просмотров 2266. Ответов 16
Метки нет (Все метки)

Здравствуйте !

я начинающий по программирований с++
найдите формулу плииз
если N=3;
1+(1/(2+(1/3)))

очень нужно!!! заранее спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2012, 10:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычисление цепных дробей (C++):

Вычисление непрерывных дробей и выражений. Вычисление полиномов и их производных. - C++
1. Чему равна знакочередующаяся сумма цифр числа n. 2. Даны натуральное число n и вещественное число х. Составить программу для...

вычисление дробей - C++
знаменатель высчитывается правильно, а вот числитель нет Кто-то подскажет почему? #include<iostream> #include<conio.h> ...

Задача на масив.Ввод дробей и вычисление среднего значения дроби! - C++
#include <iostream> using namespace std; const int MAX=15; const int MAXI=13; int main() { int j,s,h,i,r; char...

сокрощение дробей - C++
Нужно сложить две дроби и по возможности сокротить, сложение то работает. А сокротить не получается, зависает using namespace std; ...

Умножение дробей - C++
где П - произведение. то есть сначала делим i+1 на i+2 (при i=2). этот результат умножаем на i+1 на i+2 (при i=3) и так далее. n- число...

Сложение дробей - C++
Как сложить две дроби? #include<iostream> using namespace std; class Drob { private: float chislet, znamenat;

16
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
07.10.2012, 19:10 #2
Глубоко вздохните, очистите сознание от тревожных мыслей и попытайтесь сформулировать свой вопрос по-человечески.
1
EMBY
Заблокирован
07.10.2012, 19:36 #3
-_- далеко пойдешь, а если серьезно, то напиши,пожалуйста, по конкретней условие.
0
LK
Заблокирован
07.10.2012, 21:15 #4
И название темы предложите понятное, да и правила не мешало бы почитать.
0
nxmatrix
1 / 1 / 0
Регистрация: 06.10.2012
Сообщений: 6
09.10.2012, 15:54  [ТС] #5
цель: составить формулу !

Тема: Цикл "for" ;

На черное окошко выводишь "2"

компютер вычисляет так: 1+(1/2);

если писать "3" на черное окно то :1+(1/(2+(1/3))):

1+1
2+ 1
3

Добавлено через 4 минуты
Можете как дробь сделать чтоб по понятнее было ;
если писать "2" на окно;

один плюс одна вторая
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
09.10.2012, 16:05 #6
Ты меня так порадовал, что я тебе даже отвечу кодом!

C++
1
2
3
4
5
6
7
int N = 0;
cin >> N;
double result = 1;
for( int n = 2; n <= N; ++n )
    result += 1./(double)n;
 
cout << result;
Добавлено через 4 минуты
А! Тебе же формулу, а не решение?
Я ашипся.(

Добавлено через 3 минуты
В такой постановке задачу нужно решать при помощи рекурсии. Или два цикла использовать, но это не красиво и я не буду.
1
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
09.10.2012, 16:58 #7
Цитата Сообщение от Deviaphan Посмотреть сообщение
В такой постановке задачу нужно решать при помощи рекурсии. Или два цикла использовать
Зачем? О_о
C++
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
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <sstream>
#include <string>
 
double solve(int n)
{
    if (n <= 0)
        return 0.0;
    
    double result = n;
    
    for (int i = n - 1; i >= 1; --i)
        result = i + 1.0 / result;
    
    return result;
}
 
std::string int_to_str(int value)
{
    std::ostringstream ostr;
    
    ostr << value;
    
    return ostr.str();
}
 
std::string build_formula(int n)
{
    if (n == 1)
        return "1";
    
    std::string formula = int_to_str(n);
    
    for (int i = n - 1; i > 1; --i)
        formula = "(" + int_to_str(i) + " + 1 / " + formula + ")";
    
    return "1 + 1 / " + formula;
}
 
int main()
{
    std::cout << build_formula(1) << " = " << solve(1) << std::endl;
    std::cout << build_formula(2) << " = " << solve(2) << std::endl;
    std::cout << build_formula(3) << " = " << solve(3) << std::endl;
    std::cout << build_formula(4) << " = " << solve(4) << std::endl;
    
    return 0;
}
1
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
09.10.2012, 17:14 #8
Имеется теорема, которая утверждает, что любое рациональное число представимо, и притом единственным образом, в виде конечной цепной дроби. Поэтому в задании нужно найти это рациональное число, а для этого можно, например, воспользоваться так называемыми подходящими дробями. Так что задача не в лоб решается.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
09.10.2012, 17:28 #9
Цитата Сообщение от silent_1991 Посмотреть сообщение
Зачем? О_о
Затем, что не подумав сказал.
2
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
09.10.2012, 17:37 #10
Thinker, вы не поняли, в задаче всего лишь надо посчитать значение конечной цепной дроби до введённого n, что и было проделано.
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
09.10.2012, 18:14 #11
Цитата Сообщение от silent_1991 Посмотреть сообщение
в задаче всего лишь надо посчитать значение конечной цепной дроби
правильно, а значение конечной цепной дроби это рациональное число вида a/b, а выполняя деление вы это рациональное число можете не получить. но я не спорю, если хотите, то делите на здоровье).
0
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
09.10.2012, 19:22 #12
Цитата Сообщение от Thinker Посмотреть сообщение
а выполняя деление вы это рациональное число можете не получить
Ой, вот ладно.

Добавлено через 1 минуту
Thinker, я в любом случае получу рациональное число. Потому что иррациональное число компьютер (в частности, формат IEEE 754) представить не в состоянии.
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
09.10.2012, 19:26 #13
Цитата Сообщение от silent_1991 Посмотреть сообщение
[я в любом случае получу рациональное число.
согласен, но не всегда это рациональное число будет равно искомому числу.
0
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
09.10.2012, 19:28 #14
Thinker, оно, опять же, в принципе ему равно не будет. Ибо формат IEEE 754
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
09.10.2012, 19:31 #15
Смейтесь, не смейтесь, а чтобы вычислить значение конечной цепной дроби нужны другие методы, которые позволяют получить ответ вида a/b
0
09.10.2012, 19:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2012, 19:31
Привет! Вот еще темы с ответами:

Сравнение дробей - C++
Здравствуйте, очень нужна ваша помощь. Помогите, пожалуйста с сравнение дробями. больше, меньше, равно. #include &quot;stdafx.h&quot; ...

Классы дробей С++ - C++
Здравствуйте, помогите доделать класс дробей! Дан массив дробей, 1) нужно сравнить дроби, путём привидения к общему знаменателю 2) найти...

Сложение дробей. - C++
Я хочу сложить массив дробей. Числитель у меня один массив а знаменательль другой массив. Если бы у меня небыло дробей можно было бы...

Массив из дробей - C++
Добрый вечер! Необходимо ввести дробные числа, которые хранятся в массиве, сложить их и найти среднее. Написал код: #include &quot;stdafx.h&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru