помогите решить плз питон
Дано натуральное четырехзначное число. Найдите минимальное натуральное четырехзначное число, состоящее из тех же цифр, что и заданное. Заметим, что четырехзначные числа не могут начинаться с нуля. python
Общий алгоритм: у вас есть 4 цифры (из заданного четырехзначного числа).
Сортируете их по возрастанию.
Если первая цифра «ноль», то меняете ее местами со второй.
Выводите имеющуюся последовательность.
ewe 2e¶ CoЛнЫшКоcBeTиТоЧеНЬяРкО* Высший разум (283676) Хе хе. Тогда алгоритм усложняется. И в таком случае решения может и не быть вообще (число не четырехзначное получается). Но даже если ТС принесет хотя бы такой вариант, он точно получит пять (или что там у него максимальное).
Вот я тут наговнокодил на C#, объясню алгоритм, который придумал:
На вход мы получаем строку с 4-х значным числом, которую сразу перекидываем в массив символов (input). Этот массив мы сортируем. Получаем, например из 9601 массив 0169. Потом создается список output, в который закидываются все цифры кроме нулей, если цифра == 0, то инкрементируем специальную переменную, отображающую кол-во нулей, после чего нули в должном кол-ве добавляются после первой же цифры.
Таких образом получаем наименьший вариант.
На питон переводи сам, алгоритм я объяснил.
Питон рулит
lst = list(input())
c = lst.count(‘0’)
lst.sort()
for i in range(1, int(c)+1):
if int(c) == i:
lst[0], lst[i] = lst[i], lst[0]
break
fin = [int(i) for i in lst]
for i in range(len(lst)):
print(fin[i], end=»)
Без проверки правильности ввода.
while 1 — чтобы можно было ввести несколько чисел не перезапуская каждый раз
lst = list(input())
c = lst.count(‘0’)
lst.sort()
for i in range(1, int(c)+1):
if int(c) == i:
lst[0], lst[i] = lst[i], lst[0]break
fin = [int(i) for i in lst]
for i in range(len(lst)):
print(fin[i], end=»)
Четырехзначный минимум
Вводится 4-х значное число. Нужно разделить его на отдельные цифры и с их помощью записать наименьшее возможное, но тоже четырехзначное число. В задаче нельзя использовать циклы, строки и списки.
Пример 1
Ввод Вывод
3564 3456
Четырехзначный палиндром
Требуется написать программу, определяющую, является ли четырехзначное натуральное число N.
Четырехзначный палиндром
Требуется написать программу, определяющую, является ли четырехзначное натуральное число N.
Определить четырехзначный номер нарушителя
15. Три друга были свидетелями ДТП. Первый заметил, что номер нарушителя делится на 2, 7 и 11.
Определить четырехзначный номер нарушителя.
Срочно требуется помощь, нужно написать программу на C# по вот такому условию, плохо представляю.
Как сделать четырехзначный guid
Как можно генерировать уникальный ключ из 4-5 элементов( что-то типа такого "d9c60") Что-то типа.
n = 1000 d1, d2, d3, d4 = n // 1000, n // 100 % 10, n // 10 % 10, n % 10 if d1 > d2: d1, d2 = d2, d1 if d1 > d3: d1, d3 = d3, d1 if d1 > d4: d1, d4 = d4, d1 if d2 > d3: d2, d3 = d3, d2 if d2 > d4: d2, d4 = d4, d2 if d3 > d4: d3, d4 = d4, d3 print(''.format(d1 * 1000 + d2 * 100 + d3 * 10 + d4))
x = int(input())
a = x // 1000
b = x // 100 % 10
c = x // 10 % 10
d = x % 10
if a > b:
a, b = b, a
if b > c:
b, c = c, b
if c > d:
c, d = d, c
if b > c:
b, c = c, b
if a > b:
a, b = b, a
if b > c:
b, c = c, b
if a == 0 and b == 0 and c == 0:
print(d * 1000)
elif a == 0 and b == 0:
print(c * 1000 + d)
elif a == 0:
print(b * 1000 + c * 10 + d)
else:
print(a * 1000 + b * 100 + c * 10 + d)
a = int(input())
x1 = a // 1000
x2 = (a — (x1 * 1000)) // 100
x3 = (a — (x1 * 1000) — (x2 * 100)) // 10
x4 = (a — (x1 * 1000) — (x2 * 100) — (x3 * 10))
if x1 > x2:
x1, x2 = x2, x1
if x2 > x3:
x2, x3 = x3, x2
if x3 > x4:
x3, x4 = x4, x3
if x1 > x2:
x1, x2 = x2, x1
if x2 > x3:
x2, x3 = x3, x2
if x1 > x2:
x1, x2 = x2, x1
if x4 > x1:
x4, x1 = x1, x4
if x1 > x2:
x1, x2 = x2, x1
if x2 > x3:
x2, x3 = x3, x2
if x3 > x4:
x3, x4 = x4, x3
if x1 > x2:
x1, x2 = x2, x1
if x2 > x3:
x2, x3 = x3, x2
if x3 > x4:
x3, x4 = x4, x3
if x1 > x2:
x1, x2 = x2, x1
if x2 > x3:
x2, x3 = x3, x2
if x3 > x4:
x3, x4 = x4, x3
if x1 > x2:
x1, x2 = x2, x1
if x2 > x3:
x2, x3 = x3, x2
if x1 == 0 and x2:
x1, x2 = x2, x1
if x1 == 0 and x3:
x1, x3 = x3, x1
if x1 == 0 and x4:
x1, x4 = x4, x1
print(str(x1) + str(x2) + str(x3) + str(x4))
Дан четырёхзначный номер года
Дан четырёхзначный номер года. Определить номер столетия, например, при 1492 ответом должно быть.
Построить изображение, состоящее минимум из 30 объектов, созданных с использованием минимум 5 цветов
Графика в Паскале. составить программу, отображающую на экране статичное изображение, состоящее.
Построить изображение, состоящее минимум из 30 объектов, созданных с использованием минимум 5 цветов
1)составить программу,отображающую на экране статичное изображение,состоящее минимум из 30.
Двумерные массивы Найти минимум получить новую матрицу деленные на минимум
Дана матрица размером N x M. Найти в ней наименьший элемент. Получить новую матрицу, элементы.
Четырехзначный минимум
Вводится 4-х значное число. Нужно разделить его на отдельные цифры и с их помощью записать наименьшее возможное, но тоже четырехзначное число. В задаче нельзя использовать циклы, строки и списки.
Пример 1
Ввод Вывод
3564 3456
Четырехзначный палиндром
Требуется написать программу, определяющую, является ли четырехзначное натуральное число N.
Четырехзначный палиндром
Требуется написать программу, определяющую, является ли четырехзначное натуральное число N.
Определить четырехзначный номер нарушителя
15. Три друга были свидетелями ДТП. Первый заметил, что номер нарушителя делится на 2, 7 и 11.
Определить четырехзначный номер нарушителя.
Срочно требуется помощь, нужно написать программу на C# по вот такому условию, плохо представляю.
Как сделать четырехзначный guid
Как можно генерировать уникальный ключ из 4-5 элементов( что-то типа такого "d9c60") Что-то типа.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
num = int(input()) a = num % 10 num //= 10 b = num % 10 num //= 10 c = num % 10 d = num // 10 if a > b : a, b = b, a if b > c : b, c = c, b if c > d : c, d = d, c if a > b : a, b = b, a if b > c : b, c = c, b if a > b : a, b = b, a if a == 0 and b : a, b = b, a else : a, c = c, a print(d + 10 * (c + 10 * (b + 10 * a)))
Сообщение было отмечено goldolov_na как решение
Решение
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
num = int(input()) a = num % 10 num //= 10 b = num % 10 num //= 10 c = num % 10 d = num // 10 if a > b : a, b = b, a if b > c : b, c = c, b if c > d : c, d = d, c if a > b : a, b = b, a if b > c : b, c = c, b if a > b : a, b = b, a if a == 0 and b : a, b = b, a elif a == 0 and c : a, c = c, a elif a == 0 and d : a, d = d, a print(d + 10 * (c + 10 * (b + 10 * a)))
Сообщение было отмечено goldolov_na как решение
Решение
goldolov_na, первые три «if» перемещают в правый конец максимум из четырех цифр.
4-й и 5-й «if» из оставшихся трех цифр максиму в конец на третье слева место
6-й ставит минимум на первое
Дальше ветка условия — если a = 0 и b не равно 0, то. меняются местами a и b
Иначе (и а и b = 0), если «с» не равно 0, то . меняются местами a и c
Иначе и а и b и c = 0), если d не равно 0, то . меняются местами a и d
Добавлено через 55 секунд
Первые семь операторов — разбиение на цифры
Добавлено через 1 минуту
С 20-го оператора можно было
if a == 0 and b : a, b = b, a elif c : a, c = c, a elif d : a, d = d, a print(d + 10 * (c + 10 * (b + 10 * a)))
>>> i1, i2, i3, i4 = sorted((3, 5, 6, 4)) >>> print(i1*10**3 + i2*10**2 + i3*10**1 + i4*10**0) 3456
Так объявлен тип данных tuple.
Вот решение в 70 строк и оно правильное
Добавлено через 1 минуту
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
n = int(input()) a = n // 1000 b = n // 100 % 10 c = n // 10 % 10 d = n % 10 d1 = min(a, b, c, d) d4 = max(a, b, c, d) d2 = 0 d3 = 0 if a == d1: d2 = min(b, c, d) if b == d2: d3 = min(c, d) elif c == d2: d3 = min(c, b) elif d == d2: d3 = min(b, c) elif b == d1: d2 = min(a, c, d) if a == d2: d3 = min(c, d) elif c == d2: d3 = min(d, a) elif d == d2: d3 = min(a, c) elif c == d1: d2 = min(b, a, d) if a == d2: d3 = min(b, d) elif b == d2: d3 = min(d, a) elif d == d2: d3 = min(a, b) elif d == d1: d2 = min(a, c, b) if a == d2: d3 = min(c, b) elif c == d2: d3 = min(b, a) elif b == d2: d3 = min(a, c) if d1 == 0 and d2 != 0 and d3 != 0 and d4 != 0: print(f'') elif d2 == 0 and d1 != 0 and d3 != 0 and d4 != 0: print(f'') elif d3 == 0 and d2 != 0 and d3 != 0 and d4 != 0: print(f'') elif d1 == 0 and d2 == 0 and d3 != 0 and d4 != 0: print(f'') elif d2 == 0 and d3 == 0 and d1 != 0 and d4 != 0: print(f'') elif d3 == 0 and d4 == 0 and d2 != 0 and d1 != 0: print(f'') elif d1 == 0 and d4 == 0 and d2 != 0 and d3 != 0: print(f'') elif d1 == 0 and d2 == 0 and d3 == 0 and d4 != 0: print(f'') elif d2 == 0 and d1 == 0 and d4 == 0 and d3 != 0: print(f'') elif d1 == 0 and d4 == 0 and d3 != 0 and d2 != 0: print(f'') elif d2 == 0 and d4 == 0 and d3 != 0 and d1 != 0: print(f'') elif d1 != 0 and d2 != 0 and d3 != 0 and d4 != 0: print(f'')
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 33
n = 4321 d1 = n // 1000 d2 = n // 100 % 10 d3 = n // 10 % 10 d4 = n % 10 d0 = min(d1, d2, d3, d4) print(d1, d2, d3, d4) if d2 == d0: d2 = d1 d1 = d0 elif d3 == d0: d3 = d2 d2 = d1 d1 = d0 elif d4 == d0: d4 = d3 d3 = d2 d2 = d1 d1 = d0 print(d1, d2, d3, d4) d0 = min(d2, d3, d4) if d3 == d0: d3 = d2 d2 = d0 elif d4 == d0: d4 = d3 d3 = d2 d2 = d0 print(d1, d2, d3, d4) if d3 d4: print(d1 * 10 ** 3 + d2 * 10 ** 2 + d3 * 10 ** 1 + d4 * 10 ** 0) else: print(d1 * 10 ** 3 + d2 * 10 ** 2 + d4 * 10 ** 1 + d3 * 10 ** 0)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
>>> res = '' >>> num = input() 3564 >>> one = min(num) >>> res += one >>> num = num.replace(one, '', 1) >>> one = min(num) >>> res += one >>> num = num.replace(one, '', 1) >>> one = min(num) >>> res += one >>> num = num.replace(one, '', 1) >>> res += num >>> res '3456' >>>
я так долго старался писать программу а тут Simeon Kolchin написал шикарную программу (хотя я ничего в ней не понимаю)
ну вот моя попытка:
num = int(input())
t = num // 1000
a = num % 1000
c = a // 100
b = a % 100
d = b // 10
e = b % 10
if t > c > d > e
print(e, d, c, t)
if t > c > e > d:
print(d, e, c, t)
if t > d > c > e:
print(e, c, d, t)
if t > d > e > c:
print(c, e, d, t)
if t > e > c > d:
print(d, c, e, t)
if t > e > d > c:
print(c, d, e, t)
if c > t > d > e:
print(e, d, t, c)
if c > t > e > d:
print(d, e, t, c)
if c > d > t > e:
print(e, t, d, c)
if c > d > e > t:
print(t, e, d, c)
if c > e > t > d:
print(d, t, e, c)
if c > e > d > t:
print(t, d, e, c)
if d > t > c > e:
print(e, c, t, d)
if d > t > e > c:
print(c, e, t, d)
if d > c > t > e:
print(e, t, c, d)
if d > c > e > t:
print(t, e, c, d)
if d > e > t > c:
print(c, t, e, d)
if d > e > c > t:
print(t, c, e, d)
if e > t > c > d:
print(d, c, t, e)
if e > t > d > c:
print(c, d, t, e)
if e > c > t > d:
print(d, t, c, e)
if e > c > d > t:
print(t, d, c, e)
if e > d > t > c:
print(c, t, d, e)
if e > d > c > t:
print(t, c, d, e)
Добавлено через 1 минуту
но он что то пропустил все пробелы (0_0)
Четырехзначный минимум — Python — Ответ 14896215
Сообщение было отмечено goldolov_na как решение
Решение
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
num = int(input()) a = num % 10 num //= 10 b = num % 10 num //= 10 c = num % 10 d = num // 10 if a > b : a, b = b, a if b > c : b, c = c, b if c > d : c, d = d, c if a > b : a, b = b, a if b > c : b, c = c, b if a > b : a, b = b, a if a == 0 and b : a, b = b, a elif a == 0 and c : a, c = c, a elif a == 0 and d : a, d = d, a print(d + 10 * (c + 10 * (b + 10 * a)))
Четырехзначный палиндром
Требуется написать программу, определяющую, является ли четырехзначное натуральное число N.
Четырехзначный палиндром
Требуется написать программу, определяющую, является ли четырехзначное натуральное число N.
Определить четырехзначный номер нарушителя
15. Три друга были свидетелями ДТП. Первый заметил, что номер нарушителя делится на 2, 7 и 11.
Определить четырехзначный номер нарушителя.
Срочно требуется помощь, нужно написать программу на C# по вот такому условию, плохо представляю.
Как сделать четырехзначный guid
Как можно генерировать уникальный ключ из 4-5 элементов( что-то типа такого "d9c60") Что-то типа.
Дан четырёхзначный номер года
Дан четырёхзначный номер года. Определить номер столетия, например, при 1492 ответом должно быть.
Построить изображение, состоящее минимум из 30 объектов, созданных с использованием минимум 5 цветов
Графика в Паскале. составить программу, отображающую на экране статичное изображение, состоящее.
Построить изображение, состоящее минимум из 30 объектов, созданных с использованием минимум 5 цветов
1)составить программу,отображающую на экране статичное изображение,состоящее минимум из 30.
Двумерные массивы Найти минимум получить новую матрицу деленные на минимум
Дана матрица размером N x M. Найти в ней наименьший элемент. Получить новую матрицу, элементы.