Найти - Пользователи
Полная версия: Помогите решить задачу на поиск чисел
Начало » Центр помощи » Помогите решить задачу на поиск чисел
1
alaarang
Здравствуйте! В егэ по математике попалась такая задача: “В натуральном числе каждая цифра, кроме первой и последней, меньше среднего арифметического соседних с ней цифр. Приведите пример такого четырехзначного числа. Найдите наибольшее такое число.” Захотелось решить ее с помощью программирования. С четырехзначным числом получилось так:

a =
for i in range (1000,10000):
a.append(i)
for element in a:
a = int(str(element))
b = int(str(element))
c = int(str(element))
d = int(str(element))
m = (a + c)/2
n = (b + d)/2
if b < m and c < n:
print(a,b,c,d)

Но это, конечно, совсем не то. Интересует вторая часть задачи с поиском наибольшего числа. Заранее спасибо
py.user.next
alaarang
Интересует вторая часть задачи с поиском наибольшего числа.
Надо их не выводить, а добавлять в список (как кортежи цифр или как числа). А уже полученный список можно как выводить, так и искать в нём максимум.

И это, с числом как со строкой работать не принято. Для выделения цифр из числа нужно использовать операцию деления и операцию деления с остатком. Это связано с тем, что строковые операции медленнее, чем числовые, так как на строку требуется больше памяти, чем на число (строка - это массив чисел, тогда как число - это только одно число (в короткой арифметике)).

Так что исключи строки вообще. И используй массив для выбора чисел и последующей работы с ними разными способами.
alaarang

py.user.next
Спасибо, это очень полезно для меня!
Проблема в том, что необходимо найти максимальное число не в пределах конкретно четырехзначных чисел, а вообще во всех пределах… Значит, в нем может быть сколько угодно знаков. Не представляю, как можно с наименьшими затратами организовать это с помощью Python'a.
py.user.next
alaarang
Проблема в том, что необходимо найти максимальное число не в пределах конкретно четырехзначных чисел, а вообще во всех пределах… Значит, в нем может быть сколько угодно знаков.
В каких “во всех пределах”? С чего ты взял, что пределы есть? В натуральном числе может быть бесконечно много цифр. Если ты возмёшь число, в котором миллиард цифр (миллиардозначное число), то его можно умножить на десять и получить число, в котором миллиард одна цифра. Это можно повторять бесконечное число раз.

Программу же ты можешь написать, которая принимает количество цифр в числе и потом среди всех чисел с таким количеством цифр ищет подходящие числа по заданному критерию, а потом среди них находит максимальное число из отобранных. Можно это делать и одновременно. Для каждого обнаруженного числа, подходящего под критерий отбора, можно выполнять сравнение с предыдущим найденным числом, подходящим под критерий отбора. И если новое число больше старого числа, то заменять старое число на новое и следующее сравнение со следующим найденным числом проводить уже с ним.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB