Форум программистов, компьютерный форум CyberForum.ru

Вычислить значение дроби для заданном значении n - C++

Восстановить пароль Регистрация
 
yaStudent
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 35
01.07.2014, 11:47     Вычислить значение дроби для заданном значении n #1
Задача: Вычислить значение дроби для заданном значении n.
Вот задача, сделанная мной, но она не верна:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
int main()
{
  double n;
  cin>>n;
  double res=1.;
  double pow2=2.;
  for (int i=n; i>=0; i--)
 {
    res=(i+pow2/(i+1))*res;
  }
  res=1/res;
  cout<<res;
}
Просьба помочь.
Изображения
 
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1863 / 1659 / 578
Регистрация: 14.05.2014
Сообщений: 4,771
Записей в блоге: 1
Завершенные тесты: 5
01.07.2014, 12:02     Вычислить значение дроби для заданном значении n #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <cmath>
int main(){
 
    int n;
    std::cin >> n;
    double sum = 0;
    for (int i = 0; i <= n; i++)
        sum += i + pow(2., i)/(i+1);
    std::cout << sum << std::endl;
    
    return 0;
}
Добавлено через 8 минут
Не правильный вариант
ott88
10 / 10 / 0
Регистрация: 30.09.2013
Сообщений: 46
01.07.2014, 13:02     Вычислить значение дроби для заданном значении n #3
Здесь лучше использовать рекурсию.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cmath>
using namespace std;
 
double count(int n){
     double result;
     for (int i=1; i<=n; i++){
          if (i<n) result=i+pow(2, i)/count(i+1);
          else result=n+pow(2, n)/(n+1);
     }
     return result;
}
 
int main(){
     cout<<"Введите число"<<endl;
     cin>>number;
     otvet=1/count(number);
     cout<<"Ответ равен "<<otvet<<endl;
     return 0;
}
К сожалению компилятора под рукой нет, но думаю, что идея такая.
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1863 / 1659 / 578
Регистрация: 14.05.2014
Сообщений: 4,771
Записей в блоге: 1
Завершенные тесты: 5
01.07.2014, 13:27     Вычислить значение дроби для заданном значении n #4
ott88, У тебя переменные не объявлены и рекурсия бесконечная видимо. После ввода числа программа вылетает
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,334
Завершенные тесты: 1
01.07.2014, 13:48     Вычислить значение дроби для заданном значении n #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double f( unsigned i, const unsigned &n_ )
{
  if( i>=n_ ) return i;
  return i + pow( 2, i )/( f( i+1, n_ ) );
}
 
int main()
{
const int n = 4;
 
cout << f( 0, n );
 
cin.ignore();
return 0;
}
ott88
10 / 10 / 0
Регистрация: 30.09.2013
Сообщений: 46
01.07.2014, 13:59     Вычислить значение дроби для заданном значении n #6
Забыл, действительно, объявить переменные в основной части. С рекурсией не получилось, к сожалению. Попробовал без рекурсии сделать, проверил для number = 3, сошлось.
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
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
 
double count(int n){
     double result=n+pow(2, n)/(n+1);
     for (int i=n-1; i>=0; i--){
          result=i+pow(2, i)/result;
     }
     return result;
}
 
int main()
{
    int number;
    double otvet;
    cout<<"Введите число"<<endl;
    cin>>number;
    otvet=count(number);
    cout<<"Ответ равен "<<otvet<<endl;
    getch();
    return 0;
}
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1863 / 1659 / 578
Регистрация: 14.05.2014
Сообщений: 4,771
Записей в блоге: 1
Завершенные тесты: 5
01.07.2014, 14:12     Вычислить значение дроби для заданном значении n #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cmath>
double func (int i, int& n)
{
    return i >= n ? i + pow(2., i)/(i + 1.) : i + pow(2., i) / func(i+1, n);
}
int main()
{
    setlocale(LC_ALL, "");
    int n;
    std::cout << "Введите число: ";
    std::cin >> n;
    std::cout << func(0, n) << std::endl;
    
    return 0;
}
Добавлено через 2 минуты
SatanaXIII, Чуть подправил Вашу функцию
ott88
10 / 10 / 0
Регистрация: 30.09.2013
Сообщений: 46
01.07.2014, 14:14     Вычислить значение дроби для заданном значении n #8
Да, так компактнее, спасибо
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1863 / 1659 / 578
Регистрация: 14.05.2014
Сообщений: 4,771
Записей в блоге: 1
Завершенные тесты: 5
01.07.2014, 14:20     Вычислить значение дроби для заданном значении n #9
ott88, А Ваш лучше, т.к. без рекурсии
yaStudent
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 35
01.07.2014, 20:33  [ТС]     Вычислить значение дроби для заданном значении n #10
Kerry_Jr, ott88, спасибо за варианты, но необходимо, чтобы использовался цикл for.
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1863 / 1659 / 578
Регистрация: 14.05.2014
Сообщений: 4,771
Записей в блоге: 1
Завершенные тесты: 5
01.07.2014, 21:11     Вычислить значение дроби для заданном значении n #11
Сообщение было отмечено автором темы, экспертом или модератором как ответ
yaStudent, у ott88 используется цикл for. Можно проще написать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "");
    int n;
    cout << "Введите число: "; cin >> n;
    double otvet = n + pow(2, n) / (n + 1);
    for (int i = n - 1; i >= 0; i--)
          otvet = i + pow(2, i) / otvet;
    cout << "Ответ равен " << otvet << endl;
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2014, 07:46     Вычислить значение дроби для заданном значении n
Еще ссылки по теме:

Вычислить значение дроби для заданных a и n C++
C++ Рассчитать значение функции для аргументов в заданном промежутке
Вычислить значение функции в заданном диапазоне C++

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

Или воспользуйтесь поиском по форуму:
yaStudent
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 35
02.07.2014, 07:46  [ТС]     Вычислить значение дроби для заданном значении n #12
Kerry_Jr, а можно объяснить работу этой программы? Метод решения в виде математической задачи, с формулами.
Yandex
Объявления
02.07.2014, 07:46     Вычислить значение дроби для заданном значении n
Ответ Создать тему
Опции темы

Текущее время: 11:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru