Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nastya_1019
0 / 0 / 0
Регистрация: 06.05.2014
Сообщений: 6
#1

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

22.05.2014, 18:01. Просмотров 424. Ответов 14
Метки нет (Все метки)

Помогите пожалуйста написать программу!
Разработать рекурсивную функцию, возвращающую значение для вычисления суммы цифр в строке. С помощью данной функции определить, в каком из двух предложений сумма цифр больше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2014, 18:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсивные функции (C++):

Рекурсивные и не рекурсивные функции (вычисление суммы всех натуральных чисел от 1 до n) - C++
Всем привет. Заранее извиняюсь за мб глупые вопросы и навязчивость. Но у меня есть одна просьба. Помогите пожалуйста написать...

рекурсивные функции - C++
Величайшие умы форума помагите пожалуйсто) Задание:Используя рекурсивную функцию, найдите n-й член арифметической прогрессии с...

Рекурсивные функции - C++
Всем привет. Ребят, помогите. Задание: с помощью рекурсивной функции вычислить сумму элементов одномерного массива. Не спец в этом, задали...

Рекурсивные функции - C++
в функции мейн обьявить двумерный массив размером A заполнить случайным образом 1 и 2, вывести масив на экран написать рекурсивную...

Рекурсивные функции. - C++
с самой функцией нет проблем проблема в самой программе задание звучит так Для заданных двух натуральных числа m и n найти НОД(m, n) и...

Рекурсивные функции - C++
Плиз, помогите. Ошибку выдает, а исправить как - непонятно... Пока не очень понимаю рекурсивные функции... Составить программу,...

14
newbie666
Заблокирован
22.05.2014, 18:08 #2
рекурсия, собственно как и применение в С++ оператора goto говорит об очень дерьмовом стиле программирования
0
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 говорит об очень дерьмовом стиле программирования
Фэн-Шуй не всегда прав. Есть места где без него приходится городить огород. Пример выход со второго и далее уровня цикла
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,231
22.05.2014, 18:17 #4
Цитата Сообщение от newbie666 Посмотреть сообщение
рекурсия,................... говорит об очень дерьмовом стиле программирования
напиши ка например функцию заливки области без рекурсии
2
newbie666
Заблокирован
22.05.2014, 18:18 #5
Цитата Сообщение от ValeryS Посмотреть сообщение
напиши ка например функцию заливки области без рекурсии
будет задача передо мной стоять - напишу. просто так - лень ))
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,231
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 не меняются
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,231
22.05.2014, 18:22 #7
Цитата Сообщение от newbie666 Посмотреть сообщение
будет задача передо мной стоять - напишу.
давай давай
есть рекурсивные алгоритмы, где не использование рекурсии,или не возможно или дорогого стоит
рекурсия не есть аналог цикла
0
Winorun
38 / 38 / 4
Регистрация: 03.05.2013
Сообщений: 177
22.05.2014, 18:22 #8
Блин, return sum(strMasInput, i++)+strMasInput[i]-'0';
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,231
22.05.2014, 18:24 #9
Цитата Сообщение от Winorun Посмотреть сообщение
Блин, return sum(strMasInput, i++)+strMasInput[i]-'0';
может все таки ++i
а чтобы не было разночтений проще i+1
0
Winorun
38 / 38 / 4
Регистрация: 03.05.2013
Сообщений: 177
22.05.2014, 18:27 #10
Кстати [задумчиво] можно деревья вспомнить

Добавлено через 2 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
может все таки ++i
Ты Прав
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,231
22.05.2014, 18:31 #11
Цитата Сообщение от Winorun Посмотреть сообщение
Ты Прав
нет не прав
не правильно будет вычисляться
strMasInput[i] i то увеличится
так что единственный вариант без побочных эффектов
C++
1
return sum(strMasInput, i+1)+strMasInput[i]-'0';
0
Kuzia domovenok
2030 / 1874 / 168
Регистрация: 25.03.2012
Сообщений: 6,451
Записей в блоге: 1
22.05.2014, 18:33 #12
Цитата Сообщение от newbie666 Посмотреть сообщение
будет задача передо мной стоять - напишу. просто так - лень ))
а выпендриваться на рекурсию не лень?
0
Winorun
38 / 38 / 4
Регистрация: 03.05.2013
Сообщений: 177
22.05.2014, 18:35 #13
Цитата Сообщение от ValeryS Посмотреть сообщение
единственный вариант
Хм,
C++
1
return strMasInput[i]+sum(strMasInput, ++i)-'0';
[Шутки ради]
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,231
22.05.2014, 18:38 #14
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
а выпендриваться на рекурсию не лень?


Добавлено через 1 минуту
Winorun,
хрен знает точки следования как пройдут, UB возможно
0
Kuzia domovenok
2030 / 1874 / 168
Регистрация: 25.03.2012
Сообщений: 6,451
Записей в блоге: 1
22.05.2014, 18:48 #15
Цитата Сообщение от Winorun Посмотреть сообщение
return strMasInput[i]+sum(strMasInput, ++i)-'0';
а зачем тут вообще i++, если i+1 написать и безопаснее, и короче, и понятнее?
Цитата Сообщение от ValeryS Посмотреть сообщение
а чтобы не было разночтений проще i+1
ах да, уже сказали...
0
22.05.2014, 18:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2014, 18:48
Привет! Вот еще темы с ответами:

рекурсивные функции - C++
1. Найти НОД (наибольший общий делитель) двух натуральных чисел. 2. В одномерном массиве, состоящем из n целых элементов, вычислить номер...

Рекурсивные функции - C++
Написать рекурсивную функцию для вычисления максимального элемента массива из n элементов, цикл не использовать. Показать пример...

рекурсивные функции - C++
Дано натуральные числа n,m ; найти НОД(наибольший общий делитель) . Использовать программу, которая содержит рекурсивную процедуру...

рекурсивные функции - C++
помогите ррешить!!!!! на С++ Записать алгоритм Евклида вычисления наибольшего общего делителя (НОД) как рекурсивную функцию. Алгоритм...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.