Форум программистов, компьютерный форум, киберфорум
Наши страницы

Python

Войти
Регистрация
Восстановить пароль
 
ARTER616
0 / 0 / 0
Регистрация: 14.01.2017
Сообщений: 261
#1

Отсортировать список рациональных дробей, заданных в виде a/b - Python

27.06.2017, 18:04. Просмотров 249. Ответов 6
Метки нет (Все метки)

Отсортируйте список рациональных дробей, заданных в виде a/b.
ВХОДНЫЕ ДАННЫЕ

Программа получает на вход NN дробей: сначала задается число N (1≤N≤1000), потом идет N строк, в каждой из которых записана одна дробь. Дробь записана в виде a/b, где a и b —натуральные числа.
ВЫХОДНЫЕ ДАННЫЕ

Программа должна вывести список этих дробей в порядке неубывания. Если в списке есть две равные дроби a/b=c/d, то раньше выводится дробь, у которой меньше числитель.
ПРИМЕР
ВВОД
3
4/2
2/6
1/2
ВЫВОД
2/6
1/2
4/2
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2017, 18:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Отсортировать список рациональных дробей, заданных в виде a/b (Python):

Отсортировать список - Python
помогите,пжалуйста В олимпиаде участвовало N человек. Каждый получил определенное количество баллов, при этом оказалось,что у всех...

Отсортировать список слов - Python
Требуется отсортировать список слов по первой букве так, чтобы слова, начинающиеся на одну букву, остались в исходном порядке (использовать...

Калькулятор рациональных дробей - C++
Первая программа принимает от пользователя три строки, (первая и третья строки – это правильные рациональные или десятичные дроби вида ...

Интегрирование рациональных дробей - Математический анализ
(x^2-6x+8)/x^3+8

Матрица рациональных дробей - C++
П.5.4.Правил Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п. Есть матрица.txt, нужно...

Умножение рациональных дробей - PascalABC.NET
7. Напишите программу умножения двух рациональных дробей. Если полученный результат является сократимой дробью, то сократите эту дробь. ...

6
Рыжий Лис
Просто Лис
887 / 425 / 125
Регистрация: 17.05.2012
Сообщений: 1,711
Записей в блоге: 4
28.06.2017, 12:30 #2
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
t = '''\
3
4/2
2/6
1/2'''
 
def parse(text):
    return[list(map(int, line.split('/'))) for line in text.split('\n')[1:]]
 
ls = parse(t)
#~ print(ls)
 
ls.sort(key=lambda x: x[0]/x[1])
#~ print(ls)
 
for i1, i2 in ls:
    print('%d/%d' % (i1, i2))
0
ARTER616
0 / 0 / 0
Регистрация: 14.01.2017
Сообщений: 261
28.06.2017, 18:05  [ТС] #3
Почему-то не получается сделать ввод.
0
Jabbson
Модератор
Эксперт по компьютерным сетям
3342 / 2417 / 538
Регистрация: 03.11.2009
Сообщений: 7,749
Записей в блоге: 3
29.06.2017, 00:35 #4
Любители eval, налетай

Python
1
2
3
4
5
6
7
t = '''
3
4/2
2/6
1/2'''
 
print(*sorted(t.split()[1:], key=eval), sep='\n')
Добавлено через 2 минуты
чтобы удовлетворить условие с последовательностью

Python
1
print(*sorted(t.split()[1:], key=lambda x: (eval(x), x.split('/')[0])), sep='\n')
1
Рыжий Лис
Просто Лис
887 / 425 / 125
Регистрация: 17.05.2012
Сообщений: 1,711
Записей в блоге: 4
29.06.2017, 08:45 #5
Цитата Сообщение от ARTER616 Посмотреть сообщение
Почему-то не получается сделать ввод.
Вы насоздавали множество однотипных тем, наверняка найдётся код с чтением из файла.
Python
1
2
with open('in.txt') as f:
    t = f.read()
0
ARTER616
0 / 0 / 0
Регистрация: 14.01.2017
Сообщений: 261
29.06.2017, 20:13  [ТС] #6
Не файл, мне нужно чтобы вводились числа по одному с клавиатуры, а не в 1ой переменной t
0
Рыжий Лис
Просто Лис
887 / 425 / 125
Регистрация: 17.05.2012
Сообщений: 1,711
Записей в блоге: 4
30.06.2017, 07:46 #7
Python
1
2
3
4
5
6
7
8
9
10
11
count = int(input())
 
ls = []
for _ in range(count):
    line = input()
    ls.append(list(map(int, line.split('/'))))
 
ls.sort(key=lambda x: x[0]/x[1])
 
for i1, i2 in ls:
    print('%d/%d' % (i1, i2))
0
30.06.2017, 07:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2017, 07:46
Привет! Вот еще темы с ответами:

Интегрирование рациональных дробей - Математический анализ
(12dx)/((x-2)(x^2-2x-3))

Класс рациональных дробей - C++
Написать пользоват. тип рациональных дробей. Внутреннее представление типа: int a, b; должно быть таким, что число a/b должно...

Создать класс рациональных дробей - Java SE
Создать класс рациональных дробей, выбрав для него необходимые поля. Выделение целой части в классе реализовывать не нужно. Создать...

Сложение двух рациональных дробей - Pascal ABC
Написать программу сложения двух рациональных дробей. Если полученный результат является сократимой дробью, то сократить эту дробь.


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

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

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