
Длинное целое Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Напишите программу, которая разные действия производит с разными числами.
Формат ввода
Вводится число.
Формат вывода
Если введено вещественное число, то вывести только его целую часть, а если целое – то количество разрядов. Ничего другого вводиться не будет.
Пример 1
Ввод Вывод
2020.202
2020
Пример 2
Ввод Вывод
1234567890987654321
19
Примечания
В задаче нельзя определять типы переменных.
Ответы на вопрос

Для решения этой задачи нужно написать программу, которая в зависимости от вида введённого числа (вещественное или целое) производит соответствующие действия. При этом мы не можем явно проверять тип переменной, что делает задачу более интересной.
Алгоритм решения задачи
Чтение данных: Мы считываем ввод как строку. Это позволяет избежать приведения типа к
int
илиfloat
сразу после ввода и работать с числом, не зная его типа.Определение типа числа через строковые операции: Поскольку нам запрещено явно определять тип переменной, можем использовать строковые методы:
- Если введенное число содержит символ точки
'.'
, то считаем его вещественным. - Если точки нет, значит, перед нами целое число.
- Если введенное число содержит символ точки
Выполнение операций в зависимости от типа числа:
- Если в числе есть точка (
'.'
), мы считаем его вещественным числом. В таком случае нужно вывести только целую часть. Для этого можно взять часть строки до точки (до первого вхождения'.'
). - Если точки нет, то число считается целым, и нам нужно посчитать количество разрядов (символов) в этом числе. Для этого можно просто взять длину строки.
- Если в числе есть точка (
Вывод результата: После выполнения вышеуказанных шагов мы выводим либо целую часть числа, если оно вещественное, либо количество разрядов, если оно целое.
Пример кода
Вот как будет выглядеть код на Python:
Объяснение работы кода на примерах
Пример 1
Ввод:2020.202
- Строка
2020.202
содержит точку, значит, это вещественное число. - Разделяем строку по точке, получаем
2020
как целую часть. - Вывод:
2020
.
- Строка
Пример 2
Ввод:1234567890987654321
- Строка
1234567890987654321
не содержит точки, значит, это целое число. - Длина строки
1234567890987654321
составляет 19 символов. - Вывод:
19
.
- Строка
Особенности реализации
- Код работает без использования приведения типов, что соответствует условию задачи.
- Для проверки на вещественное число используется простой поиск точки в строке.
- Такой подход позволяет избежать лишних проверок и обработки исключений, связанных с конвертацией типов.
Заключение
Предложенное решение эффективно и соответствует условиям задачи.
Похожие вопросы









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









Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili