Тема 5. Алгоритмы – анализ простейших алгоритмов
5.03 Действия над цифрами числа
Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела алгоритмы – анализ простейших алгоритмов
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 1#63634

Автомат получает на вход пятизначное число. По этому числу строится новое число по таким правилам:

1. Складываются квадраты цифр, стоящих на нечетных позициях;

2. Складываются квадраты цифр, стоящих на четных позициях;

3. Затем в порядке возрастания записываются эти суммы.

Укажите наименьшее число, при вводе которого автомат выдает число 2597.

Показать ответ и решение
for i in range(10000, 99999 + 1):
    ch = int(str(i)[1])**2 + int(str(i)[3])**2
    nech = int(str(i)[0])**2 + int(str(i)[2])**2 + int(str(i)[4])**2
    if ch > nech:
        res = int(str(nech) + str(ch))
    else:
        res = int(str(ch) + str(nech))
    if res == 2597:
        print(i)
        break

Ответ: 34094

Ошибка.
Попробуйте повторить позже

Задача 2#63633

Автомат получает на вход какое-то число k (k < 100). По этому числу строится новое число M по таким правилам:

1. k умножается на число равное количеству десятков числа k ;

2. К получившемуся числу прибавляется количество единиц числа k;

3. Вывод получившегося числа M.

Укажите число при вводе которого автомат выдает 102.

Показать ответ и решение
for k in range(0, 100):
    x = k*((k - (k % 10)) // 10)
    x += k % 10
    if x == 102:
        print(k)

Ответ: 33

Ошибка.
Попробуйте повторить позже

Задача 3#63632

Автомат получает на вход пятизначное число. По этому числу строится новое число по таким правилам:

1. Складываются квадраты цифр, стоящих на нечетных позициях;

2. Складываются квадраты цифр, стоящих на четных позициях;

3. Затем в порядке возрастания записываются эти суммы.

Укажите наибольшее число, при вводе которого автомат выдает число 1350.

Показать ответ и решение
for i in range(10000, 99999 + 1):
    ch = int(str(i)[1])**2 + int(str(i)[3])**2
    nech = int(str(i)[0])**2 + int(str(i)[2])**2 + int(str(i)[4])**2
    if ch > nech:
        res = int(str(nech) + str(ch))
    else:
        res = int(str(ch) + str(nech))
    if res == 1350:
        print(i)

Ответ: 73120

Ошибка.
Попробуйте повторить позже

Задача 4#61621

Исполнитель «Молодец» получает на вход четырехзначное число N  и строит новое число R  по следующим правилам, изначально R = N  :

1) Если первая цифра числа N  делится на 3, то в числе R  заменяем её на цифру 7.

2) Если первая цифра числа N  делится на 2 и не делится на 3, то в числе R  заменяем её на цифру 9.

Сколько существует чисел N  , для которых соответствующее число R  начинается с цифры 7 или 9, а восьмеричная запись числа R  оканчивается цифрой 5?

Показать ответ и решение
count = 0
for n in range(1000,10000):
    r = str(n)
    n1 = str(n)
    if int(n1[0]) % 3  == 0:
        r = ’7’ + r[1:]
    if int(n1[0]) % 2 == 0 and int(n1[0]) % 3 != 0:
        r = ’9’ + r[1:]
    if r[0] in ’79’ and int(r) % 8 == 5:
        count += 1
print(count)

Ответ: 875

Ошибка.
Попробуйте повторить позже

Задача 5#59305

Автомат получает на вход четырёхзначное число. По этому числу строится новое число по следующим правилам:

  1. Перемножаются первая и вторая, а также третья и четвёртая цифры исходного числа.
  2. Полученные два числа записываются друг за другом в порядке убывания (без разделителей).

Укажите наименьшее число, в результате обработки которого автомат выдаст число 543.

Показать ответ и решение
На первом этапе работы автомата получились числа 54 и 3. Число 54 перемножением двух цифр можно получить только одним способом – 6 и 9.
Число 3 можно получить тоже только одним способом – 1 и 3.
Для минимизации числа выгодно взять последовательность 1, 3, 6 и 9. Итого получаем число 1369.


Решение программой:
for n in range(1000, 10000):
    s = str(n)
    p = int(s[0]) * int(s[1])
    v = int(s[2]) * int(s[3])
    if str(max(p, v))+str(min(p, v)) == ’543’:
        print(n)
        break

Ответ: 1369

Ошибка.
Попробуйте повторить позже

Задача 6#59304

Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.

  1. Складываются первая и вторая, а также вторая и третья цифры исходного числа.
  2. Полученные два числа записываются друг за другом в порядке убывания (без разделителей).

Укажите наименьшее число, в результате обработки которого автомат выдаст число 98.

Показать ответ и решение
for n in range(100, 1000):
    s = str(n)
    p = int(s[0]) + int(s[1])
    v = int(s[1]) + int(s[2])
    if str(max(p, v))+str(min(p, v)) == ’98’:
        print(n)
        break

Ответ: 172

Ошибка.
Попробуйте повторить позже

Задача 7#59301

Автомат получает на вход четырёхзначное число (число не может начинаться с нуля). По этому числу строится новое число по следующим правилам.

  1. Складываются отдельно первая и вторая, вторая и третья, третья и четвёртая цифры заданного числа.
  2. Наименьшая из полученных трёх сумм удаляется.
  3. Оставшиеся две суммы записываются друг за другом в порядке неубывания без разделителей.

Укажите наибольшее число, при обработке которого автомат выдает число 57.

Показать ответ и решение

57 это числа 5 и 7. Чтобы получить максимальное число, возьмём сумму, в результате которой получается число 7. Максимально возможные числа здесь 7 и 0.

5 представим как 5 и 0, для того, чтобы добиться максимального числа. Получаем, что искомое число - 7050.

Ответ: 7050

Ошибка.
Попробуйте повторить позже

Задача 8#57739

Автомат получает на вход четырёхзначное число. По этому числу строится новое число по следующим правилам.
1. Складывается первая и вторая цифра, вторая и третья, а также третья и четвертая цифра исходного числа.
2. Из полученных сумм отбрасывается наименьшая.
3. Полученные два числа записываются друг за другом в порядке возрастания.

Укажите наименьшее число, при обработке которого автомат выдает результат 713.

Показать ответ и решение
for n in range(1000, 10000):
    n = str(n)
    f = int(n[0])+int(n[1])
    s = int(n[1])+int(n[2])
    t = int(n[2])+int(n[3])
    avg = f+s+t-min(f,s,t)-max(f,s,t)
    if str(avg)+str(max(f,s,t)) == ’713’:
        print(n)
        break

Ответ: 1076

Ошибка.
Попробуйте повторить позже

Задача 9#57738

Автомат получает на вход четырехзначное число. По этому числу строится новое число по следующим правилам.
1. Перемножаются отдельно первая и вторая цифры, а также – вторая и третья цифры.
2. Полученные два числа записываются друг за другом в порядке убывания.

Укажите наибольшее число, при обработке которого автомат выдает результат 4212.

Показать ответ и решение
for n in range(1000, 10000):
    n = str(n)
    f = int(n[0])*int(n[1])
    s = int(n[1])*int(n[2])
    if str(max(f,s))+str(min(f,s)) == ’4212’:
        print(n)

Ответ: 7629

Ошибка.
Попробуйте повторить позже

Задача 10#57737

Автомат получает на вход четырёхзначное число. По этому числу строится новое число по следующим правилам.
1. Складывается первая и третья цифра, а также вторая и четвертая цифры исходного числа.
2. Полученные два числа записываются друг за другом в порядке возрастания.

Укажите наибольшее число, при обработке которого автомат выдает результат 815.

Показать ответ и решение
for n in range(1000, 10000):
    n = str(n)
    f = int(n[0])+int(n[2])
    s = int(n[1])+int(n[3])
    if str(min(f,s))+str(max(f,s)) == ’815’:
        print(n)

Ответ: 9860

Ошибка.
Попробуйте повторить позже

Задача 11#57271

Автомат получает на вход пятизначное число. По этому числу строится новое число по таким правилам:

1. Складываются квадраты цифр, стоящих на нечетных позициях;

2. Складываются квадраты цифр, стоящих на четных позициях;

3. Затем в порядке возрастания записываются эти суммы.

Укажите наименьшее число, при вводе которого автомат выдает число 2597.

Показать ответ и решение
for n in range(10000, 100000):
    s = str(n)
    nch = int(s[0])**2 + int(s[2])**2 + int(s[4])**2
    ch = int(s[1])**2 + int(s[3])**2
    r = str(min(ch, nch)) + str(max(ch, nch))
    if r == ’2597’:
        print(n)
        break

Ответ: 34094

Ошибка.
Попробуйте повторить позже

Задача 12#57090

Автомат получает на вход четырёхзначное число. По этому числу строится новое число по следующим правилам.

1. Складываются первая и вторая, вторая и третья, а также третья и четвёртая цифры исходного числа.

2. Из полученых чисел удаляется наибольшее.

3. Полученные два числа записываются друг за другом в порядке возрастания (без разделителей).

Пример. Исходное число: 2352. Суммы: 2 + 3 = 5; 3 + 5 = 8; 5 + 2 = 7. Наибольшая сумма – 8, она удаляется. Результат: 57.

Укажите наименьшее число, в результате обработки которого автомат выдаст число 915.

Показать ответ и решение
for n in range(1000, 10000):
    s = str(n)
    s1 = int(s[0]) + int(s[1])
    s2 = int(s[1]) + int(s[2])
    s3 = int(s[2]) + int(s[3])
    avg = s1+s2+s3-max(s1,s2,s3)-min(s1,s2,s3)
    r = str(min(s1, s2, s3)) + str(avg)
    if r == ’915’:
        print(n)
        break

Ответ: 1878

Ошибка.
Попробуйте повторить позже

Задача 13#57088

Автомат получает на вход четырёхзначное число. По этому числу строится новое число по следующим правилам.

1. Складываются первая и третья, а также вторая и четвёртая цифры исходного числа.

2. Полученные два числа записываются друг за другом в порядке убывания (без разделителей).

Пример. Исходное число: 1427. Суммы: 1 + 2 = 3; 4 + 7 = 11. Результат: 113. Укажите наибольшее число, в результате обработки которого автомат выдаст число 116.

Показать ответ и решение
for n in range(1000, 10000):
    s = str(n)
    s1 = int(s[0]) + int(s[2])
    s2 = int(s[1]) + int(s[3])
    r = str(max(s1, s2)) + str(min(s1, s2))
    if r == ’116’:
        print(n)

Ответ: 9620

Ошибка.
Попробуйте повторить позже

Задача 14#54392

Автомат получает на вход четырёхзначное число. По этому числу строится новое число по следующим правилам.

1. Складываются первая и третья, а также вторая и четвёртая цифры исходного числа.

2. Полученные два числа записываются друг за другом в порядке убывания (без разделителей).

Пример. Исходное число: 1427. Суммы: 1 + 2 = 3; 4 + 7 = 11. Результат: 113. Укажите наименьшее число, в результате обработки которого автомат выдаст число 1712.

Показать ответ и решение
for n in range(1000, 10000):
    sn = str(n)
    x = int(sn[0]) + int(sn[2])
    y = int(sn[1]) + int(sn[3])
    r = str(max(x, y)) + str(min(x, y))
    if r == "1712":
        print(n)
        break

Ответ: 3899

Ошибка.
Попробуйте повторить позже

Задача 15#51463

Автомат получает на вход четерехзначное число. По этому числу строится новое число по следующим правилам:
1. Складывается первая и вторая цифра числа, вторая и третья, третья и четвертая.
2.Наибольшая сумма удаляется. Полученные 2 числа записываются в порядке убывания(без разделителей).

Укажите наибольшее число, при обработке которого автомат выдаст результат 129.

Показать ответ и решение
for n in range(1000, 10000):
    s = str(n)
    p = int(s[0]) + int(s[1])
    v = int(s[1]) + int(s[2])
    t = int(s[2]) + int(s[3])
    avg = p+v+t-min(p, v, t)-max(p, v, t)
    if str(avg)+str(min(p, v, t)) == ’129’:
        print(n)

Ответ: 9936

Ошибка.
Попробуйте повторить позже

Задача 16#51462

Автомат получает на вход четырёхзначное число. По этому числу строится новое число по следующим правилам.
1. Складывается первая и вторая цифра, а также третья и четвертая цифры исходного числа.
2. Полученные два числа записываются друг за другом в порядке возрастания.

Укажите наибольшее число, при обработке которого автомат выдает результат 914.

Показать ответ и решение
for n in range(1000, 10000):
    s = str(n)
    p = int(s[0]) + int(s[1])
    v = int(s[2]) + int(s[3])
    if str(min(p, v))+str(max(p, v)) == ’914’:
        print(n)

Ответ: 9590

Ошибка.
Попробуйте повторить позже

Задача 17#51461

Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам.

   1. Складываются первая и вторая, а также вторая и третья цифры исходного числа.

   2. Полученные два числа записываются друг за другом в порядке невозрастания (без разделителей).

Укажите наименьшее число, в результате обработки которого автомат выдаст число 128.

Показать ответ и решение
for n in range(100, 1000):
    s = str(n)
    p = int(s[0]) + int(s[1])
    v = int(s[1]) + int(s[2])
    if str(max(p, v))+str(min(p, v)) == ’128’:
        print(n)
        break

Ответ: 175

Ошибка.
Попробуйте повторить позже

Задача 18#6729

Автомат получает на вход трехзначное число. По этому числу строится новое число по следующим правилам.

1. Перемножаются первая и вторая, а также вторая и третья цифры исходного числа.

2. Полученные два числа записываются друг за другом в порядке невозрастания (без разделителей).

Пример. Исходное число: 291. Произведения: 2 ⋅ 9 = 18  ; 9 ⋅ 1 = 9  . Результат: 189.

Укажите наименьшее число, в результате обработки которого автомат выдаст число 153.

Показать ответ и решение

Максимальное значение, которое можно получить при перемножении двух цифр, — 81. Поэтому разобьем результат работы алгоритма на числа, не превышающие 81, записанные в порядке убывания: 15|3.

Теперь подберем наиболее выгодное для нас разложение числа 3. Так как разложение 3 единственное, его и возьмем в качестве наиболее выгодного: 3 ⋅ 1 = 3  .

Теперь подберем наиболее выгодное для нас разложение числа 6. Наша задача подобрать такое разложение, чтобы одно из чисел в произведении было минимальным:

Значит, 5 ⋅ 3 = 15  — самое выгодное для нас разложение числа 15. В остальных случаях мы не сможем получить минимальное число.

Поскольку в результате работы алгоритма нам необходимо получить 153, исходя из разложений, получим ответ — 135.

Проверим его: 1 ⋅ 3 = 3,3 ⋅ 5 = 15  , запишем результаты в порядке убывания: 153.

Ответ: 135

Ошибка.
Попробуйте повторить позже

Задача 19#6728

Автомат получает на вход трехзначное число. По этому числу строится новое число по следующим правилам.

1. Перемножаются первая и вторая, а также вторая и третья цифры исходного числа.

2. Полученные два числа записываются друг за другом в порядке неубывания (без разделителей).

Пример. Исходное число: 291. Произведения: 2 ⋅ 9 = 18  ; 9 ⋅ 1 = 9  . Результат: 189.

Укажите наименьшее число, в результате обработки которого автомат выдаст число 22.

Показать ответ и решение

Максимальное значение, которое можно получить при перемножении двух цифр, — 81. Поэтому разобьем результат работы алгоритма на числа, не превышающие 81, записанные в порядке неубывания: 2|2.

Теперь подберем наиболее выгодное для нас разложение числа 2. Так как разложение 3 единственное, его и возьмем в качестве наиболее выгодного: 2 ⋅ 1 = 2  .

Поскольку в результате работы алгоритма нам необходимо получить 22, исходя из разложений, получим ответ — 121.

Проверим его: 1 ⋅ 2 = 2,2 ⋅ 1 = 2  , запишем результаты в порядке неубывания: 22.

Ответ: 121

Ошибка.
Попробуйте повторить позже

Задача 20#6727

Автомат получает на вход четырехзначное число. По этому числу строится новое число по следующим правилам.

1. Складываются первая и третья, а также вторая и четвертая цифры исходного числа.

2. Полученные два числа записываются друг за другом в порядке возрастания (без разделителей).

Пример. Исходное число: 2491. Суммы: 2 + 9 = 11; 4 + 1 = 5. Результат: 511.

Укажите наибольшее число, в результате обработки которого автомат выдаст число 1415.

Показать ответ и решение

Максимальное значение, которое можно получить при сложении двух цифр, — 18. Поэтому разобьем результат работы алгоритма на числа, не превышающие 18: 14|15.

Теперь подберем наиболее выгодное для нас разложение числа 14. Наша задача подобрать такое разложение, чтобы одно из чисел в сумме было максимальным:

Разложения, в которых участвуют числа, больше 9, нам не подходят.

Значит, 9 + 5 = 14  — самое выгодное для нас разложение числа 14. В остальных случаях мы не сможем получить максимальное число.

Теперь подберем наиболее выгодное для нас разложение числа 15. Наша задача подобрать такое разложение, чтобы одно из чисел в сумме было максимальным:

9 + 6 = 15  — самое выгодное для нас разложение числа 15. В остальных случаях мы не сможем получить максимальное число.

Поскольку в результате работы алгоритма нам необходимо получить 1415, исходя из разложений, получим ответ — 9965.

Проверим его: 9 + 6 = 15,9 + 5 = 14  , запишем результаты в порядке возрастания: 1415.

Ответ: 9965
Рулетка
Вы можете получить скидку в рулетке!