Вопрос задан 20.07.2023 в 04:42. Предмет Информатика. Спрашивает Беркут Иван.

Программист на Северном полюсе работал за компьютером в варежках и поэтому мог набирать только 0 и

1, а клавиша 0 запала. Сможет ли он набрать число, состоящее только из единиц и при этом кратное заданному N? язык программирования любой Входные данныеПрограмме дано число N (1 ≤ N ≤ 106).Выходные данныеВывести минимальное число, удволетворяющее требованию, или "NO" , если такого числа не существует.Примерывходные данные100выходные данныеNOвходные данные57выходные
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Иванов Руслан.

Язык: C++

_________________________

#include <iostream>

using namespace std;

int main(){

unsigned long long int a, b=0;

cin>>a;

if (a%2==0) {cout<<"NO"; return 0;}

for (unsigned long long int n=1; n<=1111111111111111111; n=n*10+1) {

 if (n%a==0){cout<<n; return 0;}

 ++b;

}

cout<<"NO";

return 0;

}

_______________

Работает, если максимальная длина вводимой программистом последовательности из единиц равна 19. Предполагаю, что этого достаточно.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи можно воспользоваться алгоритмом обхода в глубину (DFS) с возвратом. Мы можем построить числа из единиц и нулей, начиная с 1 и добавляя единицы до тех пор, пока число не станет кратным N или не превысит его. Если число превышает N, мы возвращаемся назад и меняем последний добавленный символ на 0, чтобы проверить другие комбинации.

Вот пример реализации на Python:

python
def find_number(N): stack = ["1"] while stack: num = int(stack.pop()) if num % N == 0: return num elif num < N: stack.append(str(num) + "0") stack.append(str(num) + "1") return "NO" # Пример использования: N = int(input()) result = find_number(N) print(result)

Примеры:

  1. Входные данные: 100, Выходные данные: "NO" (не существует числа из единиц, кратного 100)
  2. Входные данные: 57, Выходные данные: 111 (111 кратно 57)

Обратите внимание, что данная реализация может быть неэффективной для больших значений N, но для заданных диапазонов N она должна справляться нормально.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос