Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Рекурсивный вызов функции


Автор: RDN 14.12.2006, 21:05
Вычислить (результат принадлежит  Сринивазу Рамануджану)  
КОРЕНЬ ИЗ (8 - КОРЕНЬ ИЗ (8 + КОРЕНЬ ИЗ (8 - КОРЕНЬ ИЗ 8+корень из(...)))) ...... и тд периодически знак меняется 
то есть с каждым разом корень растет....

где знаки перед корнями периодически повторяются группами по три: "-","+","-".
Ответ: 
 1 минус 2 *корень из 3 * sin20градусов

В программе использовать функцию или процедуру для реализации задачи.
помогите прошу

Автор: RDN 18.12.2006, 14:24
помогите прошу кто знает у меня нет ни 1 идей
ну ктонить знающий найдется уж smile((
мне на вторник (завтра ) уже прошу !
4 проги написал 3 остались ...

Автор: Pete 19.12.2006, 09:03
Код

#include <stdio.h>
#include <math.h>

#define MAX 30

double my_sqrt( double x )
{
  static int iterations = 0;
  static char sgn = '-';
  
  iterations++;
  
  if (iterations > MAX) return x;
  else {
    if (sgn == '-') {
      sgn = '+';
      return sqrt(8 - my_sqrt( x ));
    } else {
      sgn = '-';
      return sqrt(8 + my_sqrt( x ));
    }
  }
}

int main( void )
{
  printf( "%lf\n", my_sqrt(x) );
  
  return 0;
}

Автор: RDN 19.12.2006, 17:43
спасибо 
что значит 4 и 11 строка - поподробней пожалуйста

Автор: Romikgy 19.12.2006, 17:56
Цитата(RDN @  19.12.2006,  16:43 Найти цитируемый пост)
значит 4

максимальное погружение в рекурсию
Цитата(RDN @  19.12.2006,  16:43 Найти цитируемый пост)
11 строка

глубина рекурсии,
бесконечно рекурсию делать нельзя ибо обвалится стек и приложение уйдет в краш

Автор: RDN 19.12.2006, 22:45
прога прерывается на 27 строке 
 smile [C++ Error] Unit1.cpp(27): E2451 Undefined symbol 'x'

Автор: Romikgy 19.12.2006, 23:20
RDN, поставь вместо икса то число для которого надо вычислить эти корни

Автор: RDN 20.12.2006, 07:12
ты наверно задание не понял smile 
у меня вместо (...) продолжается функция до бесконечности , надо выяснить сколько корней будет из восьми чтобы получить ОТВЕТ.
помоги пожалуйста.

Автор: Romikgy 20.12.2006, 09:53
Цитата(RDN @  20.12.2006,  06:12 Найти цитируемый пост)
продолжается функция до бесконечности

1. бесконечные ф_ции на компе не решаются, ибо он сам органичен, 
и всегда решаются до какого либо  предела (как правило до машиного епсилона)
2. имхо любое вычисление значения от
Цитата(RDN @  14.12.2006,  20:05 Найти цитируемый пост)
КОРЕНЬ ИЗ

берется от числа!!!! а ты говоришь что 
Цитата(RDN @  20.12.2006,  06:12 Найти цитируемый пост)
у меня вместо (...) продолжается функция до бесконечности

от чего брать корень?

Автор: RDN 20.12.2006, 19:21
КОРЕНЬ ИЗ (8 - КОРЕНЬ ИЗ (8 + КОРЕНЬ ИЗ (8 - КОРЕНЬ ИЗ (8+корень из(...)))) ...... и тд периодически знак меняется с - на +  КОРЕНЬ РАСТЕТ
вместо троеточия корни из (8-  корень из (8+ корень из(.... т.е. надо вычислиь СКОЛЬКО РАЗ повторится КОРНЕЙ ИЗ (8 -или+ ... чтобы получился 
ответ равный 2 *корень из 3 * sin(20градусов) - 1
вот кажись все...
 

Автор: Romikgy 20.12.2006, 19:30
Цитата(Romikgy @  20.12.2006,  08:53 Найти цитируемый пост)
от чего брать корень? 

 smile  smile  smile 
 smile 
Цитата(RDN @  20.12.2006,  18:21 Найти цитируемый пост)
надо вычислиь СКОЛЬКО РАЗ повторится КОРНЕЙ ИЗ (8 -или+ ... 

сколько не вычисляй имхо надо считать от чего то?
или ты уравнение считаешь и те узнать это число надо?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)