8625. Удалить цифру

 

Дано трехзначное целое число. Удалите в нем одну цифру так, чтобы осталось максимально возможное число. Порядок цифр меняться не должен.

 

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

 

Выход. Выведите максимально возможное число после удаления одной цифры.

 

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

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

432

43

 

 

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

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

659

69

 

 

РЕШЕНИЕ

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

 

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

Найдем цифры числа n = . После удаления цифры можно получить одно из следующих чисел:

·        x = 10 * a + b;

·        y = 10 * b + c;

·        z = 10 * a + c;

Далее находим наибольшее число среди них и выводим его.

 

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

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

 

scanf("%d", &n);

 

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

 

a = n / 100;

b = n / 10 % 10;

c = n % 10;

 

Генерируем числа x, y, z, которые можно получить из n удалением одной цифры.

 

x = 10 * a + b;

y = 10 * b + c;

z = 10 * a + c;

 

Вычисляем максимум из трех чисел: res = max(x, y, z).

 

res = x;

if (y > res) res = y;

if (z > res) res = z;

 

Выводим ответ.

 

printf("%d\n", res);

 

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 / 100;

    int b = n / 10 % 10;

    int c = n % 10;

 

    int x = 10 * a + b;

    int y = 10 * b + c;

    int z = 10 * a + c;

 

    int res = x;

    if (y > res) res = y;

    if (z > res) res = z;

    System.out.println(res);

 

    con.close();

  }

}

 

Python реализация

 

n = int(input())

a = n // 100

b = n // 10 % 10

c = n % 10

 

x = 10 * a + b

y = 10 * b + c

z = 10 * a + c

 

res = x

if y > res: res = y

if z > res: res = z

 

print(res)