Задача: Без средней
Записать заданное трехзначное натуральное число без средней цифры.
Входные данные
Одно натуральное трехзначное число.
Выходные данные
Вывести трехзначное число без средней цифры.
Тесты
Ввод | Вывод |
---|---|
157 | 17 |
242 | 22 |
578 | 58 |
Решение
Есть как минимум два способа решения данной задачи. Первый очень простой — нам просто нужно вывести 1-ю цифру и 3-ю. Таким образом мы выведем число без средней.
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <iostream> using namespace std; int main() { char a; cin.get(a); cout << a; cin.get(a); cin.get(a); cout << a; return 0; } |
1 2 3 4 5 6 7 8 9 |
#include <iostream> using namespace std; int main() { int a; cin >> a; a = (a / 100) * 10 + a % 10; cout << a; return 0; } |
Засчитал, но есть замечания по некоторым утверждениям
— «выполняется дольше» — реальную скорость работы таких коротких программ оценить не так просто. Стоило бы посмотреть во что компилируется каждый из фрагментов. Скорее всего окажется, что Вы правы. Но за этим простым вопросом скрываются интересные темы динамического и статического анализа программ.
— «но он использует линейные вычисления» — а разве не оба варианта используют линейные вычисления? Почему «но»?
— Я позволил себе внести некоторые исправления в Вашу публикацию. Признаюсь, я просто сдался. Снова объяснять про числительные или почему «без» не является ключевым словом буду в следующих Ваших работах.
Ну насчет времени: время брал с еолимпа. 1.95 мс против 3х. Имеется ввиду что если программа будет работать в цикле на этом можно немного проиграть. Я не считаю что 2й код использует вычисление т.к там отсутсвуют операции с переменными кроме ввода и вывода.