0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 14
1

Ошибка в рекурсии

26.12.2013, 06:15. Показов 901. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста исправить ошибку.
Задание: Найти сумму наименьших элементов.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import random
i=1
m=[]
m.append(0)
for i in range(10):
    m.append(i)
    m[i]=int(random.randint(10,20))
    print('%d'%m[i])
min=10
for i in range(10):
    if m[i]<m[min]:
        min=i
    s=m[min]
def rec(s,i,m):
    if i == 1:
        return 0
    else:
        if m[i]==s:
            return s+rec(s,i-1,m)
        else:
            return rec(s,i-1,m)
print('Summa naimenshih elementov = %2d'%rec(s,10,m))
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2013, 06:15
Ответы с готовыми решениями:

Ошибка в Рекурсии с++
Здравствуйте,у меня в данном коде выбивает ошибку в строке 23 .В рекурсии я не силён и прошу...

Ошибка в рекурсии
Здравствуйте уважаемые читатели. Формула для рекурсивного вычисления: ...

Ошибка в рекурсии
почему то переменная y не меняется во время рекурсии. что за? #include &lt;iostream&gt; using...

Ошибка в реализации рекурсии
Здравствуйте, подскажите пожалуйста в чём ошибка. &quot;Неверное число параметров функции&quot; выдает в 4...

4
Эксперт Python
4603 / 2024 / 359
Регистрация: 17.03.2012
Сообщений: 10,078
Записей в блоге: 6
26.12.2013, 10:52 2
Какая ошибка-то?
0
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 14
26.12.2013, 14:55  [ТС] 3
Цитата Сообщение от dondublon Посмотреть сообщение
Какая ошибка-то?
Сумма наименьших элементов всегда равна 9
Вот здесь, например, она должна быть равна 11
Python
1
2
3
4
5
6
7
8
9
10
11
19
13
13
12
19
18
15
16
14
11
Summa naimenshih elementov =  9
А здесь - 20
Python
1
2
3
4
5
6
7
8
9
10
11
19
16
12
17
11
10
19
11
14
10
Summa naimenshih elementov =  9
но почему то всегда выходит 9, не знаю как это исправить
0
Эксперт Python
4603 / 2024 / 359
Регистрация: 17.03.2012
Сообщений: 10,078
Записей в блоге: 6
26.12.2013, 15:03 4
Не представляю себе, как это сделать с рекурсией.
В любом случае, ваша рекурсивная функция находит не наименьший элемент, а что-то другое.
0
4505 / 3499 / 356
Регистрация: 12.03.2013
Сообщений: 6,021
26.12.2013, 19:08 5
Вроде рекурсия нормально должна работать. Это вы список неправильно формируете (можете напечатать и убедиться). Кажется, вы думаете, что append(<бла-бла>) делает не то, что она делает. Она просто добавляет элемент в хвост списка. Благодаря строчке m.append(i) в конце списка вы имеете девятку.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2013, 19:08
Помогаю со студенческими работами здесь

Рекурсии, ошибка выполнения
Здравствуйте, Подскажите пожалуйста в чем у меня ошибка, данный пример почему-то не работает,...

Логическая ошибка при рекурсии
Решил задачу в теме про рекурсию. Использован алгоритм Евклида. Условие: Напишите рекурсивную...

Возникает ошибка при применении рекурсии
Программа работала с ошибкой, причём не давая сбоя, и вот я решил её совсем немного изменить, при...

Ошибка в рекурсии Illegal use of floating point
#include &lt;stdio.h&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; float...

Ошибка сегментирования при использовании рекурсии
Суть проблемы в следующем: При функции со значением а(100) все работает отлично. Но как заставить...

Ошибка при решении задачи с использованием рекурсии
Здравствуйте! Есть задание на лабораторную работу &quot;Линейные алгоритмы&quot;: Животновод в начале...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru