2097. Трёхзначные числа

 

На заданном промежутке [a, b] выведите в возрастающем порядке все трёхзначные числа, у которых все цифры различны.

 

Вход. Два натуральных трехзначных числа a и b (100 ≤ ab ≤ 999).

 

Выход. Вывести в порядке возрастания все трёхзначные числа из интервала [a, b] с различными цифрами. Каждое число следует выводить в отдельной строке.

 

Пример входа

Пример выхода

100 105

102

103

104

105

 

 

РЕШЕНИЕ

перебор

 

Анализ алгоритма

Переберем все трехзначные числа от a до b. Если все цифры числа различны, то выводим его.

 

Реализация алгоритма

На вход функции diff поступает трехзначное число n. Выделим из него цифры сотен a, десятков b и единиц c. Функция diff возвращает 1, если все цифры числа n разные.

 

int diff(int n)

{

  int a = n / 100;

  int b = (n / 10) % 10;

  int c = n % 10;

  return (a != b) && (b != c) && (a != c);

}

 

Основная часть программы. Читаем входные значения a и b.

 

scanf("%d %d",&a,&b);

 

Перебираем все числа на промежутке [a, b]. Если в текущем числе i все цифры различны, то выводим его.

 

for(i = a; i <= b; i++)

  if (diff(i)) printf("%d\n",i);

 

Java реализация

 

import java.util.*;

 

public class Main

{

  static boolean diff(int n)

  {

    int a = n / 100, b = (n / 10) % 10, c = n % 10;

    return !((a == b ) || (b == c) || (a == c));

  }

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int a = con.nextInt();

    int b = con.nextInt();

    for(int i = a; i <= b; i++)

      if(diff(i)) System.out.println(i);

    con.close();

  }

}

 

Python реализация

На вход функции diff поступает трехзначное число n. Выделим из него цифры сотен a, десятков b и единиц c. Функция diff возвращает 1, если все цифры числа n разные.

 

def diff(n):

  a = n // 100

  b = (n // 10) % 10

  c = n % 10

  return a != b and b != c and a != c

 

Основная часть программы. Читаем входные значения a и b.

 

a, b = map(int, input().split())

 

Перебираем все числа на промежутке [a, b]. Если в текущем числе i все цифры различны, то выводим его.

 

for i in range(a, b+1):

  if diff(i): print(i)