М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Даниилл7805
Даниилл7805
22.09.2022 23:42 •  Информатика

Напишите программу, которая в последовательности натуральных чисел определяет минимальное число, оканчивающееся на 6. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 6. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число — минимальное число, оканчивающееся на 6 НА ПИТОНЕ

👇
Ответ:

while True:

   n = int(input('Введите количество чисел в последовательности: '))

   if 0 < n <= 1000: break

   print('Вводите натуральное число, не превышающее 1000!')

minimal = None

for i in range(n):

   while True:

       value = int(input(f'Введите {i+1}-е число: '))

       if 0 < value <= 30000: break

       print('Вводите натуральное число, не превышающее 30000!')

   if value % 10 == 6 and (minimal is None or minimal > value): minimal = value

print(minimal)

4,4(53 оценок)
Открыть все ответы
Ответ:
FlUSHWER
FlUSHWER
22.09.2022

//g++ -Wall -o 1 1.cpp

//./1

#include <iostream>

#include <algorithm>

#include <vector>

using namespace std;

int main() {

   int n;

   cin>>n;

   if (n == 0){

       cout<<0;

       return 0;

   }

   else{

       int a1 = 0 , a2 = 1;

       int c = 1;

       while(a2<=n){

           if (a2==n){

               cout<<c;

               return 0;

           }

           a1 = a2;

           a2 = a1+a2;

           c++;

       }

       cout<<-1;

       return 0;

   }

}

Объяснение:

4,5(22 оценок)
Ответ:
Sasha0067890
Sasha0067890
22.09.2022
Код программы ruby
for i in "1000".to_i(8).."7777".to_i(8)
    s = i.to_s(2)
    k = 0
    s.chars.each {|c| k += 1 if c == "1"}
    if (k==5)
        p [i, i.to_s(8), s, k]
        break
    end
end

Вывод
[527, "1017", "1000001111", 5]

ответ
1017

Если решать аналитически, то наверное это делается методом подбора плюс быстрым переводом восьмеричной системы в двоичную (каждая цифра 8чной переводится в 3 цифры 2чной, можно заранее посчитать кол-во единиц для каждой). Сразу понимаем что в числах 1000-1016 будет слишком мало единиц, только "7"_8 переводится в "111"_2. И еще две единицы дают "1"_8
4,7(17 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ