8621. Две одинаковые цифры

 

Дано четырехзначное натуральное число. Определите, содержит ли оно в точности две разные цифры, причем каждая из этих цифр должна встречаться по два раза. Например, такому условию удовлетворяют числа 2727 и 6677.

 

Вход. Одно четырехзначное натуральное число.

 

Выход. Выведите YES, если число удовлетворяет заданному условию, и NOиначе.

 

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

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

2323

YES

 

 

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

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

2323

YES

 

 

РЕШЕНИЕ

условный оператор

 

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

Вычислим цифры числа n = . Число n содержит в точности две разные цифры по два раза, если имеет место одно из следующих условий:

·        a = b, с = d, но при этом aс;

·        a = c, b = d, но при этом ab;

·        a = d, b = c, но при этом ab;

 

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

Читаем входное значение n.

 

scanf("%d", &n);

 

Пусть n = . Находим цифры a, b, c, d числа n.

 

a = n / 1000;

b = n / 100 % 10;

c = n / 10 % 10;

d = n % 10;

 

Выводим ответ в зависимости от выполнения условия.

 

if ((a == b && c == d && a != c) ||

    (a == c && b == d && a != b) ||

    (a == d && b == c && a != b))

  printf("YES\n");

else

  printf("NO\n");

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int n = con.nextInt();

    int a = n / 1000;

    int b = n / 100 % 10;

    int c = n / 10 % 10;

    int d = n % 10;

    if ((a == b && c == d && a != c) ||

        (a == c && b == d && a != b) ||

        (a == d && b == c && a != b))

      System.out.println("YES");

    else

      System.out.println("NO");

   

    con.close();

  }

}

 

Python реализация

 

n = int(input())

a = n // 1000

b = n // 100 % 10

c = n // 10 % 10

d = n % 10

if (a == b and c == d and a != c) or (a == c and b == d and a != b) or

   (a == d and b == c and a != b):

  print("YES")

else:

  print("NO")