Форум » Обработка целых чисел » Задание 17.76 » Ответить

Задание 17.76

vitalkise: 76) (А.Г. Минак) Рассматривается множество целых чисел, принадлежащих числовому отрезку [1007,746001], в которых первая цифра – наибольшая из всех цифр, и при этом они имеют четное количество цифр 5 (не менее 2-х). Найдите количество таких чисел и наибольшее такое число, начинающееся с 50. В ответе запишите два целых числа: сначала количество, затем наибольшее такое число, начинающееся с 50. У меня не сходится ответ. У меня получается 9067 505554, а в ответах 9069 505554. Где можно потерять было 2 числа? И слова "первая цифра – наибольшая из всех цифр" я так понимаю означают не строгое неравенство. Иначе ответ совсем не совпадет. Вариант решения (Питон). На каноничность не претендую. Не самый "гладкий" вариант. Специально все по отдельности "разжевывал", пытался понять где потерял эти два числа. [pre2] start,end=1007,746001 a=[] for i in range(start,end+1): n=i s=0 while i!=0: if i%10==5: s+=1 i=i//10 if (n<10000 and n//1000>=n//100%10 and n//1000>=n//10%10 and n//1000>=n%10) and s==2: a.append(n) if (n>=10000 and n<100000 and n//10000>=n//1000%10 and n//10000>=n//100%10 and n//10000>=n//10%10 and n//10000>=n%10) and (s==2 or s==4): a.append(n) if (n>=100000 and n//100000>=n//10000%10 and n//100000>=n//1000%10 and n//100000>=n//100%10 and n//100000>=n//10%10 and n//100000>=n%10) and (s==2 or s==4): a.append(n) max=0 for i in range (1,len(a)): if (a//100000==5 and a//10000%10==0) and a>max: max=a print(len(a),max) [/pre2]

Ответов - 2

polyakovss: [pre2] count = 0 for x in range(1007,746001+1): L=[int(k) for k in str(x)] count5 = L.count(5) if L[0] == max(L) and count5 >= 2 and count5 % 2 == 0: count += 1 if L[0] == 5 and L[1] == 0: max_number = x print(count,max_number) [/pre2]

vitalkise: Спасибо. Понял что делал не так



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