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

Предупреждение в программе с рекурсивными функциями - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Переменный член http://www.cyberforum.ru/cpp-beginners/thread364512.html
Здраствуйте. В классе обявлен переменный член itsA в привытном методе доступа. Можно ли его с помощью такой функции new*itsA=new int обявленной в конструкторе этого класса сделать указателем на динамическую область памяти??? И что будет при его перезагрузке будет ли он по прежнему динамичным ???
C++ Решить несколько задач Добавлено через 1 минуту час остался. люди помогите. судьба решается http://www.cyberforum.ru/cpp-beginners/thread364507.html
Вычисление логарифма по основанию C++
Здравствуйте, как в языке си вычисляется логарифм по основанию?
вопросы связанные с темой "читай мат.часть" C++
Здравствуйте, имется код #define fname argv /* Archive file name */ #define sname argv /* Specimen's name */ int main(int argc, char **argv) { //int argc; //char *argv; //short item_sz ;
C++ Парсинг XML http://www.cyberforum.ru/cpp-beginners/thread364443.html
Как его на плюсах лучше сделать?
C++ Какое время будут показывать часы через р часов q минут r секунд? Текущее показание электронных часов: h часов (0 ≤ h ≤ 23) m минут (0 ≤ m ≤ 59) s секунд (0≤ k ≤ 59). Какое время будут показывать часы через р часов q минут r секунд? Дано действительное число R вида nnn. ddd (три цифровых разряда в дробной и целой частях). Поменять местами дробную и целую части числа и вывести полученное значение числа. В следующий раз учтите следующие моменты при... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,444
11.10.2011, 14:05     Предупреждение в программе с рекурсивными функциями
Я бы сделал так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
double p(int i)
{
   double result;
   switch(i)
   {
   case 0:
      abort();
 
   case 1:
      result = cos(1.);
      break;
 
   case 2:
      result = - sin(1.);
      break;
   
   default:
     result = 2 * p(i - 1) - p(i - 2);
   }
   
   return result;
}
Или так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double p(int i)
{
   if(i == 0)
   {
       abort();
       return 0; // never gonna be executed
   }
   if(i == 1)
       return cos(1.);
   if(i == 2)
       return - sin(1.);
   
   return 2 * p(i - 1) - p(i - 2);
}
Или бы вообще сдвинул индексы так, чтобы они начинались с нуля:
C
1
2
3
4
5
6
7
8
double p(size_t i)
{
   if(i == 0)
      return cos(1.);
   if(i == 1)
      return - sin(1.);
   return 2 * p(i - 1) - p(i - 2);
}
Nameless One, а как сделать latex-разметку
Взять какую-нибудь книгу по http://www.cyberforum.ru/cgi-bin/latex.cgi?\LaTeX (я бы посоветовал "Набор и верстка в системе http://www.cyberforum.ru/cgi-bin/latex.cgi?\LaTeX" Львовского), и почитать главу о наборе математических формул. Формулы набираются в парном теге [latex][/latex]. Ну или, как посоветовали выше, воспользоваться редактором формул
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru