Форум » Кодирование и декодирование информации » Задание 5 №1717 » Ответить

Задание 5 №1717

Egor123123: У кого ошибка: у меня или в ответе задания? (вариант 2301) (№ 1717) Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам. 1. Из цифр, образующих десятичную запись N, строятся наибольшее и наименьшее возможные двузначные числа (числа не могут начинаться с нуля). 2. На экран выводится разность полученных двузначных чисел. Пример. Дано число N = 351. Наибольшее двузначное число из заданных цифр – 53, наименьшее – 13. На экран выводится разность 53 – 13 = 40. Чему равно количество чисел N на отрезке [700; 800], в результате обработки которых на экране автомата появится число 80? Ответ: 2 Код ниже прилагаю: [more]counter = 0 for N in range(700, 800 + 1): number = N digits = [] while number > 0: digits.append(number % 10) number //= 10 digits.sort() for i in range(len(digits)): biggerNum = int(str(digits[2]) + str(digits[1])) if digits[0] == 0: lessNum = 0 else: lessNum = int(str(digits[0]) + str(digits[1])) if biggerNum - lessNum == 80: counter += 1 print(N, digits) print(biggerNum, lessNum) print('---') print(counter)[/more] Вывод: [more]719 [1, 7, 9] 97 17 --- 791 [1, 7, 9] 97 17 --- 800 [0, 0, 8] 80 0 --- 3[/more]

Ответов - 9

Egor123123: ``` counter = 0 for N in range(700, 800 + 1): number = N digits = [] while number > 0: digits.append(number % 10) number //= 10 digits.sort() for i in range(len(digits)): biggerNum = int(str(digits[2]) + str(digits[1])) if digits[0] == 0: lessNum = 0 else: lessNum = int(str(digits[0]) + str(digits[1])) if biggerNum - lessNum == 80: counter += 1 print(N, digits) print(biggerNum, lessNum) print('---') print(counter) ```

Egor123123: [pre2] counter = 0 for N in range(700, 800 + 1): number = N digits = [] while number > 0: digits.append(number % 10) number //= 10 digits.sort() for i in range(len(digits)): biggerNum = int(str(digits[2]) + str(digits[1])) if digits[0] == 0: lessNum = 0 else: lessNum = int(str(digits[0]) + str(digits[1])) if biggerNum - lessNum == 80: counter += 1 print(N, digits) print(biggerNum, lessNum) print('---') print(counter) [/pre2]

Поляков: Egor123123 пишет: двузначные числа (числа не могут начинаться с нуля) Ваш третий вариант не подходит.


polyakovss: Вариант решения задачи 1717:[pre2] def f(x): L=sorted([int(x) for x in str(x)]) max_d = L[2]*10 + L[1] c = L.count(0) if c == 0: min_d = L[0]*10 + L[1] if c == 1: min_d = L[1]*10 if c == 2: min_d = max_d return max_d - min_d print(len([x for x in range(700,801) if f(x) == 80]))[/pre2]

gglin: def f(n): d = [] for i in permutations(n, 2): n1 = int(''.join(i)) if n1 >= 10: d.append(n1) return d k = 0 for i in range(700, 801): lst = f(str(i)) if max(lst) - min(lst) == 80: k += 1 print(k)

gglin: def f(n): d = [] for i in permutations(n, 2): n1 = int(''.join(i)) if n1 >= 10: d.append(n1) return d k = 0 for i in range(700, 801): lst = f(str(i)) if max(lst) - min(lst) == 80: k += 1 print(k)

Alex1104: k = 0 for n in range(900, 1000): s = str(n) p1 = [int(s[0]), int(s[1]), int(s[2])] p2 = sorted(p1) t1 = int((str(p2[2]) + str(p2[1]))) if p2[0] == 0 and p2[1] != 0: t2 = int((str(p2[1]) + str(p2[0]))) elif p2[0] == 0 and p2[1] == 0: t2 = int((str(p2[2]) + str(p2[1]))) elif p2[0] != 0 and p2[1] == 0: t2 = int((str(p2[0]) + str(p2[1]))) else: t2 = int((str(p2[0]) + str(p2[1]))) p3 = abs(t1 - t2) if p3 == 70: k += 1 print(k)

Alex1104: [pre2] k = 0 for n in range(900, 1000): s = str(n) p1 = [int(s[0]), int(s[1]), int(s[2])] p2 = sorted(p1) t1 = int((str(p2[2]) + str(p2[1]))) if p2[0] == 0 and p2[1] != 0: t2 = int((str(p2[1]) + str(p2[0]))) elif p2[0] == 0 and p2[1] == 0: t2 = int((str(p2[2]) + str(p2[1]))) elif p2[0] != 0 and p2[1] == 0: t2 = int((str(p2[0]) + str(p2[1]))) else: t2 = int((str(p2[0]) + str(p2[1]))) print(p2, t1 - t2) p3 = abs(t1 - t2) if p3 == 70: k += 1 print(k) [/pre2]

Ж: [pre2] k=0 for n in range(700,801): par=[int(str(a)+str(b)) for (a,b) in permutations(str(n),2) if a!='0' and a+b!='00'] if max(par)-min(par)==80: k+=1; print(k,n) [/pre2]



полная версия страницы