логика для написания функции find_maximum_people - PullRequest
0 голосов
/ 06 ноября 2019

Учтите, что человеческая башня должна быть выполнена на сцене, и сцена имеет максимальный весовой предел. Напишите программу на Python, чтобы найти максимальное количество людей на базовом уровне, чтобы общий вес башни не превышал максимальный предел веса на сцене. Предположим, что:

  1. Каждый человек весит 50 кг.
  2. На базовом уровне башни человека всегда будет нечетное количество людей.
  3. На каждом уровне количество людей уменьшается на 2.

    def human_pyramid(no_of_people):
        if (no_of_people == 1):
        return 1 * (50)
        else:
            return no_of_people * (50) + human_pyramid(no_of_people - 2)
    
    def find_maximum_people(max_weight):
        pass
    
    max_people = find_maximum_people(1000)
    print(max_people)
    

Ответы [ 2 ]

1 голос
/ 06 ноября 2019
    #this funtion return the weight of the tower  
    def human_pyramid(no_of_people): 
        if (no_of_people == 1):
            return 1 * (50)
        else:
            return no_of_people * (50) + human_pyramid(no_of_people - 2)

    def find_maximum_people(max_weight):
        i=1
        while i<(max_weight//50):
            current_weight=human_pyramid(i)
            if current_weight>max_weight:
                return i-1 
                #when the weight exceed this means older value was in the limit
            i=i+2
    max_people = find_maximum_people(1000)
    print(max_people)
0 голосов
/ 06 ноября 2019
def human_pyramid(no_of_people): 
    if (no_of_people == 1):
        return 1 * (50)
    else:
        return no_of_people * (50) + human_pyramid(no_of_people - 2)

def find_maximum_people(max_weight):
    max=max_weight//50
    i = max
    while i<=max:            
        curr=human_pyramid(max)
        max=max-2
        i=i-2
max_people = find_maximum_people(1000)
print(max_people)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...