Найти - Пользователи
Полная версия: Помогите сгенерировать монотонную последовательность)
Начало » Центр помощи » Помогите сгенерировать монотонную последовательность)
1
Emma
Здраствуйте!
Мне нужно сгенерировать последовательность чисел, элементы которой возрастают, пока номер элемента не удовлетворяет условию: делится на пять без остатка, а затем убывают до следующего номера и т.д.
Есть идеи как это можно осуществить?
Emma
def f(n):
    """Печатает первые n элементов последовательности """
     
    k=1
    m=0
    while k<=n:
        if k%5==0:
            m=m-1
            print(m)
         
        else:
            m=m+1
            print(m)
        k=k+1
            
    return          
    

f(12): 1, 2, 3, 4, 3, 4, 5, 6, 7, 6, 7, 8
Убывают элементы № 5, 10…
А должно получится: 1, 2, 3, 4, 3, 2, 1, 0, -1, 0, 1, 2
Убывают элементы № 5-9, а дальше опять возрастают
Romissevd
может так
def f(n):
    """Печатает первые n элементов последовательности """
    k=1
    m=0
    while k<=n:
        if k%5==0:
            for x in range(k):
                m=m-1
                print(m)
                k=k+1
        
        else:
            m=m+1
            print(m)
        k=k+1
Emma
Правильно выводит, только первые 10 элементов)
Romissevd
Emma
Убывают элементы № 5-9, а дальше опять возрастают
возрастают уже без проверки условия k%5==0 или с проверкой7
если возрастает с проверкой условия то после k%5==0 опять должны убывать7
terabayt
def f(n):
    r, k = 0, 1
    for i in range(1, n+1):
        if not i % 5:
            k *= -1
        r += k
        print(r)
Emma
Спасибо большое, очень помогли!
А можно написать то же самое через рекурсию?
terabayt
Emma
А можно написать то же самое через рекурсию?
можно, но это задача которая решается не через рекурсию! поэтому это очень-очень плохой код
def f(k, s, e, r):
    for i in range(s, e+1):
        if not i % 5:
            print(r-k)
            return f(k * -1, i+1, e, r-k)
        r += k
        print(r)
FishHook
Почему никто не вспомнил про генераторы?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB