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

Рекурсия. Не происходит обнуление - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выбор наибольшего из трех чисел. http://www.cyberforum.ru/cpp-beginners/thread39973.html
Мне на экзамене задали задачу, из-за которой мой балл упал с 5 до 4, т.к. я не смог ее решить. Задача звучала следующим образом: Написать оператор, вычисляющий наибольшее из трех чисел при промощи условной операции ?: Сегодня я ее решил, и было бы интересно узнать мнение по поводу моего решения, т.е. насколько оно правильное и что можно было бы сделать с точки зрения оптимизации и...
C++ Даны координаты двух полей Даны координаты двух полей шахматной доски. Определить, может ли конь за один ход перейти с одного из этих полей на другое. http://www.cyberforum.ru/cpp-beginners/thread39969.html
Матрица C++
Представленная матрица 3 х 3. Заменить в матрице числа буквами.
C++ Целые числа
Даны целые числа С1, ... с9. Есть ли в этой последовательности три подряд стоящих нулевых элементов. Если есть, то напечатать их номера, если нет, то вычислить сумму элементов в последовательности.
C++ С++ Блок - схема http://www.cyberforum.ru/cpp-beginners/thread39943.html
Обычный: for(int i = 0; i < i+1; i++) { /* Безконечный цикл P.S: Безконечно делать это*/ } Двойной (for в for'e): for(int i = 0; i < 5; i++) {
C++ Переведите на С Функция по 3 числам проверяет могут ли эти числа быть сторонами треугольника. С помощью функции массив ( где каждая строка стороны треугольника ) найти все треугольники которые могут существовать(в 1 строке, во 2 строке и в 3 строке). Вывести результаты на экран ! uses crt; const n=10;{kolichestvo treugolnicov} var a:arrayof integer; i,j:integer; function Trg(x,y,z:integer):boolean;... подробнее

Показать сообщение отдельно
rrrFer
Заблокирован
13.06.2009, 21:44     Рекурсия. Не происходит обнуление
вариант:
C++
1
2
3
4
5
6
7
double funct(int n,double x,double y){          //Рекурсивная функция
    double result = x/(1+y);    //Формирование очередного значения суммы
    y = y+x;                    //Формирование x и y 
    x *= 0.3;
    if(n == 0)  return 0;
    return result + funct(n-1,x,y);
}
Добавлено через 39 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
do{
        printf("\nВведите n:");          //Ввод данных
        n=int_protect();
        printf("\nResult: %3.15f", funct(n,1,1));
        printf("\n\nХотите произвести  еще одно вычисление?(Y/N)");
        do{
            ch=toupper(getch());
            if( (ch=='Y')||(ch=='N') )
                printf("%c\n",ch);
        }while (ch!='Y' && ch!='N');
    }
    while (ch!='N');
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru