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

Рекурсивные функции - C++

Восстановить пароль Регистрация
 
Nastya_1019
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 6
22.05.2014, 18:01     Рекурсивные функции #1
Помогите пожалуйста написать программу!
Разработать рекурсивную функцию, возвращающую значение для вычисления суммы цифр в строке. С помощью данной функции определить, в каком из двух предложений сумма цифр больше.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2014, 18:01     Рекурсивные функции
Посмотрите здесь:

C++ рекурсивные функции
рекурсивные функции C++
C++ рекурсивные функции
C++ Рекурсивные функции
Рекурсивные функции. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newbie666
Заблокирован
22.05.2014, 18:08     Рекурсивные функции #2
рекурсия, собственно как и применение в С++ оператора goto говорит об очень дерьмовом стиле программирования
Winorun
38 / 38 / 4
Регистрация: 03.05.2013
Сообщений: 177
22.05.2014, 18:15     Рекурсивные функции #3
strMasInput -- входная строка;
C++
1
2
3
4
int sum(char *strMasInput, int i){
if(strMasInput[i]==0)return 0;
return sum(strMasInput, i)+strMasInput[i]-'0';
}
Добавлено через 2 минуты
Цитата Сообщение от newbie666 Посмотреть сообщение
рекурсия, собственно как и применение в С++ оператора goto говорит об очень дерьмовом стиле программирования
Я думаю это лаба т.ч. на все воля препода. Если программа реальна, пресоеденюсь рекурсию лудше не использовать.

Добавлено через 1 минуту
Цитата Сообщение от newbie666 Посмотреть сообщение
применение в С++ оператора goto говорит об очень дерьмовом стиле программирования
Фэн-Шуй не всегда прав. Есть места где без него приходится городить огород. Пример выход со второго и далее уровня цикла
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,052
22.05.2014, 18:17     Рекурсивные функции #4
Цитата Сообщение от newbie666 Посмотреть сообщение
рекурсия,................... говорит об очень дерьмовом стиле программирования
напиши ка например функцию заливки области без рекурсии
newbie666
Заблокирован
22.05.2014, 18:18     Рекурсивные функции #5
Цитата Сообщение от ValeryS Посмотреть сообщение
напиши ка например функцию заливки области без рекурсии
будет задача передо мной стоять - напишу. просто так - лень ))
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,052
22.05.2014, 18:20     Рекурсивные функции #6
Цитата Сообщение от Winorun Посмотреть сообщение
Пример выход со второго и далее уровня цикла
давно уже решено
отдельная функция
Цитата Сообщение от Winorun Посмотреть сообщение
int sum(char *strMasInput, int i){
if(strMasInput[i]==0)return 0;
return sum(strMasInput, i)+strMasInput[i]-'0';
}
я правильно понимаю что будет бесконечная рекурсия
ни strMasInput ни i не меняются
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,052
22.05.2014, 18:22     Рекурсивные функции #7
Цитата Сообщение от newbie666 Посмотреть сообщение
будет задача передо мной стоять - напишу.
давай давай
есть рекурсивные алгоритмы, где не использование рекурсии,или не возможно или дорогого стоит
рекурсия не есть аналог цикла
Winorun
38 / 38 / 4
Регистрация: 03.05.2013
Сообщений: 177
22.05.2014, 18:22     Рекурсивные функции #8
Блин, return sum(strMasInput, i++)+strMasInput[i]-'0';
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,052
22.05.2014, 18:24     Рекурсивные функции #9
Цитата Сообщение от Winorun Посмотреть сообщение
Блин, return sum(strMasInput, i++)+strMasInput[i]-'0';
может все таки ++i
а чтобы не было разночтений проще i+1
Winorun
38 / 38 / 4
Регистрация: 03.05.2013
Сообщений: 177
22.05.2014, 18:27     Рекурсивные функции #10
Кстати [задумчиво] можно деревья вспомнить

Добавлено через 2 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
может все таки ++i
Ты Прав
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,052
22.05.2014, 18:31     Рекурсивные функции #11
Цитата Сообщение от Winorun Посмотреть сообщение
Ты Прав
нет не прав
не правильно будет вычисляться
strMasInput[i] i то увеличится
так что единственный вариант без побочных эффектов
C++
1
return sum(strMasInput, i+1)+strMasInput[i]-'0';
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
22.05.2014, 18:33     Рекурсивные функции #12
Цитата Сообщение от newbie666 Посмотреть сообщение
будет задача передо мной стоять - напишу. просто так - лень ))
а выпендриваться на рекурсию не лень?
Winorun
38 / 38 / 4
Регистрация: 03.05.2013
Сообщений: 177
22.05.2014, 18:35     Рекурсивные функции #13
Цитата Сообщение от ValeryS Посмотреть сообщение
единственный вариант
Хм,
C++
1
return strMasInput[i]+sum(strMasInput, ++i)-'0';
[Шутки ради]
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,052
22.05.2014, 18:38     Рекурсивные функции #14
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
а выпендриваться на рекурсию не лень?


Добавлено через 1 минуту
Winorun,
хрен знает точки следования как пройдут, UB возможно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2014, 18:48     Рекурсивные функции
Еще ссылки по теме:

C++ рекурсивные функции
C++ Рекурсивные и не рекурсивные функции (вычисление суммы всех натуральных чисел от 1 до n)
Рекурсивные функции C++

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
22.05.2014, 18:48     Рекурсивные функции #15
Цитата Сообщение от Winorun Посмотреть сообщение
return strMasInput[i]+sum(strMasInput, ++i)-'0';
а зачем тут вообще i++, если i+1 написать и безопаснее, и короче, и понятнее?
Цитата Сообщение от ValeryS Посмотреть сообщение
а чтобы не было разночтений проще i+1
ах да, уже сказали...
Yandex
Объявления
22.05.2014, 18:48     Рекурсивные функции
Ответ Создать тему
Опции темы

Текущее время: 05:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru