2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 38
1

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

01.07.2014, 11:47. Показов 1740. Ответов 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.07.2014, 11:47
Ответы с готовыми решениями:

Для функций, заданных графически, определить значение у при заданном значении х
для функций, заданных графически, определить значение у при заданном значении х с++

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

Рассчитать значение y при заданном значении x
Рассчитать значение y при заданном значении x: sin2x при x&gt;0 y= 1+2sinx2 при x&gt;0 в...

Рассчитать значение у при заданном значении x
Рассчитать значение у при заданном значении x: sin x2, при x&gt;0 y= 1+2sin2x, в противном...

11
Эксперт PHP
3102 / 2587 / 1219
Регистрация: 14.05.2014
Сообщений: 7,231
Записей в блоге: 1
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
10 / 10 / 1
Регистрация: 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
Эксперт PHP
3102 / 2587 / 1219
Регистрация: 14.05.2014
Сообщений: 7,231
Записей в блоге: 1
01.07.2014, 13:27 4
ott88, У тебя переменные не объявлены и рекурсия бесконечная видимо. После ввода числа программа вылетает
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
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
10 / 10 / 1
Регистрация: 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
Эксперт PHP
3102 / 2587 / 1219
Регистрация: 14.05.2014
Сообщений: 7,231
Записей в блоге: 1
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
10 / 10 / 1
Регистрация: 30.09.2013
Сообщений: 46
01.07.2014, 14:14 8
Да, так компактнее, спасибо
0
Эксперт PHP
3102 / 2587 / 1219
Регистрация: 14.05.2014
Сообщений: 7,231
Записей в блоге: 1
01.07.2014, 14:20 9
ott88, А Ваш лучше, т.к. без рекурсии
0
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 38
01.07.2014, 20:33  [ТС] 10
Kerry_Jr, ott88, спасибо за варианты, но необходимо, чтобы использовался цикл for.
0
Эксперт PHP
3102 / 2587 / 1219
Регистрация: 14.05.2014
Сообщений: 7,231
Записей в блоге: 1
01.07.2014, 21:11 11
Лучший ответ Сообщение было отмечено yaStudent как решение

Решение

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
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 38
02.07.2014, 07:46  [ТС] 12
Kerry_Jr, а можно объяснить работу этой программы? Метод решения в виде математической задачи, с формулами.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2014, 07:46
Помогаю со студенческими работами здесь

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

Найти значение функции при заданном значении аргумента
добрый вечер, уважаемые программисты. помогите, пожалуйста, написать программу в консольном режиме...

Разработка нерекурсивных функций: вычислить значение выражения, результат представить в виде обыкновенной дроби
помогите плииз)) не могу разобраться в задаче:вычислить значение выражения a/b+c/d; результат...

Верно ли неравенство при заданном значении х
2 Верно ли неравенство при заданном значении х \(\frac{\left| x-4\right|\sqrt{y-2}}...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru