Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 13.06.2020
Сообщений: 3
1

Нахождение и вывод суммы элементов самой длинной возрастающей последовательности подряд идущих элементов массива

01.07.2020, 10:35. Просмотров 136. Ответов 1
Метки нет (Все метки)

Здравствуйте.
Столкнулся с проблемой при решении вот такой задачи:
Дан целочисленный массив из 40 элементов. Элементы массива могут принимать произвольные значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит сумму элементов самой длинной возрастающей последовательности подряд идущих элементов массива.

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

Исходные данные на языке Python:

Python
1
2
3
4
5
6
7
# допускается также
# использовать четыре
# целочисленные переменные l, lmax, s, smax
a = []
n = 40
for i in range(0, n):
a.append(int(input()))
Мой код получился похожим на тот код,который был дан в качестве правильного ответа,написанного на Pascal,но получаемая сумма отличается.

Я пытался найти ошибку порядка часа,но ничего не нашел(видимо,я слишком глупый).Помогите,пожалуйста,найти ошибку в коде.

Вот мой код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
a = []
n = 5
for i in range(0, n):
    a.append(int(input()))
 
lmax = 0
l = 1
s = a[1]
smax = 0
for i in range(0, n):
    if a[i] > a[i - 1]:
        l += 1
        s += a[i]
    else:
        if l > lmax:
            lmax = l
            smax = s
            l = 1
            s = a[i]
if l > lmax:
    smax = s
print(smax)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.07.2020, 10:35
Ответы с готовыми решениями:

Найти сумму элементов самой длинной последовательности подряд идущих элементов массива
Задан массив натуральных чисел, элементы которого могут принимать значения от 1 до 1000. Найти и...

Найти длину самой длинной последовательности подряд идущих элементов массива
Помогите написать программу:Задан целочисленный массив A(N). Найти длину самой длинной...

Найти длину самой длинной последовательности подряд идущих нулевых элементов массива
Задан числовой массив A(n). Найти длину самой длинной последовательности подряд идущих элементов...

Найти длину самой длинной последовательности подряд идущих элементов массива, равных нулю
Задан одномерный массив. Найти длину самой длинной последовательности подряд идущих элементов...

1
128 / 61 / 19
Регистрация: 03.05.2019
Сообщений: 100
02.07.2020, 03:27 2
Моё решение:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
def max_growing_seq(data):
    '''Поиск найбольшей суммы из последовательностей возрастающих чисел
    [data - список целых чисел]'''
    max_amount = 1    # длина найбольшей последовательности
    max_sum = data[0] # сумма найбольшей последовательности
    amount = 1        # счётчик длины
    sum = data[0]     # счётчик суммы
 
    for i in range(1, len(data)):
        if data[i] < data[i - 1]: # условие не выполняется или список закончился
            if amount > max_amount:
                max_amount = amount
                max_sum = sum
            # Обнуление счётчиков:
            amount = 1
            sum = data[i]
        else:
            sum += data[i]
            amount += 1
        i += 1
 
    # Финальная проверка:
    if amount > max_amount:
        max_sum = sum
    return max_sum
 
def main():
    a = [1, 2, 3, -3, 5, -2, 1, 3, 7]
    print(max_growing_seq(a))
 
if __name__ == "__main__":
    main()
Правда, возможно есть исключения, когда алгоритм не будет работать.

Добавлено через 2 минуты
Цитата Сообщение от Krityra Посмотреть сообщение
s = a[1]
А не 0?
Цитата Сообщение от Krityra Посмотреть сообщение
for i in range(0, n):
И начинаете с 1.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2020, 03:27

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Определить длину самой длинной последовательности подряд идущих элементов массива, равных нулю
Помогите найти ошибку в коде. При вводе значений элементов массива, ну например (012300120001) - 12...

Определить длину самой длинной последовательности подряд идущих элементов массива, равных нулю
надо сделать 2 проги, а я в фортране вообще не шарю) 2)Заданы число N и целочисленный массив...

Найти длину самой длинной последовательности подряд идущих нулевых элементов массива (Pascal -> Fortran)
Заданы число N и целочисленный массив A(N). Написать программу, определяющую длину самой длинной...

Найти и вывести на экран сумму элементов самой длинной последовательности подряд идущих элементов
решите пожалуйста. В заранее благодарен! Задан массив натуральных чисел, элементы которого могут...

Длина самой длинной последовательности подряд идущих элементов
Приветствую Всех. нужна помощь в решении задачи. Условие: Длина самой длиной...

Написать функцию для нахождения самой длинной последовательности подряд идущих элементов массива,равных какому-либо заданному
Написать функцию для нахождения самой длинной последовательности подряд идущих элементов...


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

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

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