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

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

Войти
Регистрация
Восстановить пароль
 
yaStudent
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 35
#1

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

01.07.2014, 11:47. Просмотров 717. Ответов 11
Метки нет (Все метки)

Задача: Вычислить значение дроби для заданном значении 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;
}
Просьба помочь.
0
Изображения
 
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2014, 11:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить значение дроби для заданном значении n (C++):

Вычислить значение дроби для заданных a и n - C++
Всем доброго времени суток.Прошу помочь с задачей.Суть самой проблемы заключается не в коде,а понимании задачи.Условие на скриншоте Не...

Вычислить значение дроби (кажется дроби) - C++
Доброго времени суток, возникла проблема, на днях дали вот такое интересное задание, только вот сути его понять не могу, нужно написать...

Найти значение функции при заданном значении аргумента - C++
добрый вечер, уважаемые программисты. помогите, пожалуйста, написать программу в консольном режиме C++. ВОТ ЗАДАНИЕ: найти значение...

Верно ли неравенство при заданном значении х - C++
2 Верно ли неравенство при заданном значении х \(\frac{\left| x-4\right|\sqrt{y-2}} {4\sqrt{10-x}+x-13}\geq 0\)

Вычислить значение функции в заданном промежутке - C++
Мне нужно создать простенькую программу на нахождение значения функции f(x)=x3+sinx на отрезке с шагом 0,2 Если не сложно, подскажите...

Вычислить значение функции в заданном диапазоне - C++
помогите пожалуйста! Вычислить значение функции в заданном диапазоне. Осуществить вывод исходных данных и результат вычисления значения...

11
Kerry_Jr
Модератор
Эксперт PHP
2206 / 2002 / 701
Регистрация: 14.05.2014
Сообщений: 5,867
Записей в блоге: 1
Завершенные тесты: 5
01.07.2014, 12:02 #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 минут
Не правильный вариант
0
ott88
10 / 10 / 0
Регистрация: 30.09.2013
Сообщений: 46
01.07.2014, 13:02 #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;
}
К сожалению компилятора под рукой нет, но думаю, что идея такая.
0
Kerry_Jr
Модератор
Эксперт PHP
2206 / 2002 / 701
Регистрация: 14.05.2014
Сообщений: 5,867
Записей в блоге: 1
Завершенные тесты: 5
01.07.2014, 13:27 #4
ott88, У тебя переменные не объявлены и рекурсия бесконечная видимо. После ввода числа программа вылетает
0
SatanaXIII
Супер-модератор
Эксперт С++
5643 / 2678 / 252
Регистрация: 01.11.2011
Сообщений: 6,574
Завершенные тесты: 1
01.07.2014, 13:48 #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;
}
3
ott88
10 / 10 / 0
Регистрация: 30.09.2013
Сообщений: 46
01.07.2014, 13:59 #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;
}
2
Kerry_Jr
Модератор
Эксперт PHP
2206 / 2002 / 701
Регистрация: 14.05.2014
Сообщений: 5,867
Записей в блоге: 1
Завершенные тесты: 5
01.07.2014, 14:12 #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, Чуть подправил Вашу функцию
2
ott88
10 / 10 / 0
Регистрация: 30.09.2013
Сообщений: 46
01.07.2014, 14:14 #8
Да, так компактнее, спасибо
0
Kerry_Jr
Модератор
Эксперт PHP
2206 / 2002 / 701
Регистрация: 14.05.2014
Сообщений: 5,867
Записей в блоге: 1
Завершенные тесты: 5
01.07.2014, 14:20 #9
ott88, А Ваш лучше, т.к. без рекурсии
0
yaStudent
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 35
01.07.2014, 20:33  [ТС] #10
Kerry_Jr, ott88, спасибо за варианты, но необходимо, чтобы использовался цикл for.
0
Kerry_Jr
Модератор
Эксперт PHP
2206 / 2002 / 701
Регистрация: 14.05.2014
Сообщений: 5,867
Записей в блоге: 1
Завершенные тесты: 5
01.07.2014, 21:11 #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;
}
1
yaStudent
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 35
02.07.2014, 07:46  [ТС] #12
Kerry_Jr, а можно объяснить работу этой программы? Метод решения в виде математической задачи, с формулами.
0
02.07.2014, 07:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2014, 07:46
Привет! Вот еще темы с ответами:

Вычислить значение функции в заданном диапазоне - C++
Хай, форумчане. В общем нужна ваша помощь. Только начал изучать, решаю задания, но к этому не могу найти примера. Вычислить значение...

Вычислить значение функции на заданном промежутке с заданным шагом: - C++
Вычислить значение функции на заданном промежутке с заданным шагом: C++

Вычислить значение функции на заданном интервале с указанным шагом - C++
вычислить значение функции y(x)=cos(x^5) на заданном интервале с указанным шагом. результаты вычислений вывести на экран в виде таблицы.

Вычислить и вывести на экран значение функции на заданном интервале - C++
Помогите Плиз))) задача во вложение. Ознакомьтесь, пожалуйста, с правилами форума. п. 5.18 Запрещено размещать задания и решения...


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

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

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