Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2018, 00:36   #1
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию 200р. Python

нужно доработать прогу.
здесь нужно изменить возведение в степень чтобы было справо на лево
Тут у меня сейчас просто возводится нужно изменить.

пример входные данные(все через ввод в консоль)
4 # сколько штук в низу
4 2 2 2 2 2 # первая цифра в этой строке количество элементов в этой строк -1
1 2 2
1 3 2
1 2 3




как происходит возведение в степень
4 2 2 2 2 2

2^2^2^2^2 =2^65536
препоследняя возводится в последнию и получается 4
теперь третия цифра в эту четвёрку 2^4 = 16
Теперь вторая двойка в степень.2^16 =65536
и теперь самая левая двойка 2^65536




Цитата:
n = int(input())
h = {}
for i in range(n):
args = list(map(int, input().split()))
c = args[1]
for p in args[2:]:
c **= p
h[i] = c
print(*[x[0]+1 for x in sorted(h.items(), key=lambda x: x[1])])


если не понятно вот условие задачи
все числа вводятся с консоли
4 # четвёрка это число сколько будет вот тех последовательностей в низу.
1 2 2 # Первое число в этой строке это количество элементов в этой строке минус один.то есть тут двойка возводится в двойку.2^2
1 2 6 # тут двойка возводится в степень шесть.
1 3 2 # тут тройка возводится в степень два.
2 5 2 3 # тут двойка сначала возводится в степень три потом пятёрка возводется в степень которая получилась.то есть 2^3 = 8 потом 5^8 = 390625

после как идут эти числа в порядке возрастания,напечатать их индексы.
значит нужно вывести 1 3 2 4

Последний раз редактировалось Александр121; 30.05.2018 в 00:53.
Александр121 вне форума Ответить с цитированием
Старый 30.05.2018, 07:09   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Ну так, например:
Код:
     args = list(map(int, input().split()))
     args.pop(0)
     c = 1
     for p in args[::-1]:
          c = p**c

Последний раз редактировалось Black Fregat; 30.05.2018 в 07:12.
Black Fregat вне форума Ответить с цитированием
Старый 30.05.2018, 18:50   #3
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

я подаю в вашу программу вот такой тест но она ничего не выдаёт
10
4 2 2 2 2 2
1 2 2
1 3 2
1 2 3
3 2 2 2 2
2 2 2 2
1 3 3
3 3 3 3 3
2 4 3 3
2 2 3 4
Александр121 вне форума Ответить с цитированием
Старый 30.05.2018, 18:52   #4
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

вот посмотрите мой код можете исправить чтоб он работал с большими числами?

Код:
n = int(input())
h = {}
for i in range(n):
    args = list(map(int, input().split()))[1:]
    c = 1
    for x in list(reversed(args)):
        c = x**c
    h[i] = c
print(*[x[0]+1 for x in sorted(h.items(), key=lambda x: x[1])])
Александр121 вне форума Ответить с цитированием
Старый 30.05.2018, 18:53   #5
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Ммм. А Вы не заметили, что у меня только кусок программы?
Это замена строк 4-7 в Вашей программе.
По-моему, "нетрудно видеть"
Black Fregat вне форума Ответить с цитированием
Старый 30.05.2018, 18:54   #6
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

я заменил 4 -7 строку подал тест мне ничего не вышло
Александр121 вне форума Ответить с цитированием
Старый 30.05.2018, 18:55   #7
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от Александр121 Посмотреть сообщение
чтоб он работал с большими числами
С большими - это какими? И что именно не работает? Памяти не хватает? Времени?
Вероятно, если наступаем на эти грабли - нужно менять алгоритм
Black Fregat вне форума Ответить с цитированием
Старый 30.05.2018, 19:00   #8
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

ну например с такими просто ничего не выходит 3 3 3 3 3
Александр121 вне форума Ответить с цитированием
Старый 30.05.2018, 19:04   #9
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Ну это не 200 рублей, тут думать надо
Есть место для отладки? Куда всё это загонять надо?
Black Fregat вне форума Ответить с цитированием
Старый 30.05.2018, 19:04   #10
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

я подаю
10
4 2 2 2 2 2
1 2 2
1 3 2
1 2 3
3 2 2 2 2
2 2 2 2
1 3 3
3 3 3 3 3
2 4 3 3
2 2 3 4


когда он доходит до момента что ему нужно сосчитать 3 3 3 3 3 он останавливается
Александр121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Документации, учебники, уроки и полезные материалы по Python, PyQt, PySide pompiduskus Python 4 22.07.2022 10:16
Написать программу на Си 200р PandoraChekave Фриланс 3 15.10.2017 13:18
Начальный уровень Python. Функции - Python YYYUUU Python 5 09.06.2017 12:09
считать числа в массив +200р Ilinoid Фриланс 3 28.03.2017 03:04
python eohim Фриланс 0 04.05.2011 13:50