7-сегментные цифры могут быть представлены в ASCII с использованием _|
символов. Вот 1
цифры размера :
_ _ _ _ _ _ _ _
| _| _| |_| |_ |_ | |_| |_| | |
| |_ _| | _| |_| | |_| _| |_|
Большие размеры формируются путем пропорционального удлинения каждого сегмента. Вот пара размером 3 цифры.
___ ___ ___ ___ ___ ___ ___
| | | | | | | | | |
| | | | | | | | | |
|___| |___ | |___ ___| | | |___|
| | | | | | | | | |
| | | | | | | | | |
|___| |___| | ___| ___| |___| ___|
Цель
В этой задаче вы должны написать программу / функцию, которая может принимать одну цифру в качестве ввода и определять ее размер. Подвох: если ввод не является действительной цифрой, то ваша программа должна вывести 0
.
Это код-гольф , побеждает меньше байтов.
Вы можете написать либо программу, либо функцию, которая может получить цифру либо как STDIN, либо как аргумент, и вывести / вернуть значение.
Цифры будут представлены в виде многострочной строки, дополненной минимальным количеством пробелов, необходимых для создания идеального прямоугольника. Конечный символ новой строки является необязательной частью ввода. Не будет лишних пробелов.
Когда передается нецифровка, она все равно будет состоять из _|
символов, дополненных прямоугольником, и не будет иметь лишних начальных пробелов. Там не будет пустых строк. Вам не придется иметь дело с пустым вводом.
Выходными данными должно быть одно неотрицательное целое число с необязательным завершающим переводом строки. Если ввод не является правильной цифрой любого размера, выведите 0
. Иначе выведите размер.
Вот удобное руководство по ширине и высоте каждой цифры для данного размера N
.
Digit Height Width (not counting newlines)
1 2N 1
2 2N+1 N+2
3 2N+1 N+1
4 2N N+2
5 2N+1 N+2
6 2N+1 N+2
7 2N+1 N+1
8 2N+1 N+2
9 2N+1 N+2
0 2N+1 N+2
Примеры ввода / вывода
В:
__
|
__|
|
__|
Вне:
2
В:
|
|
|
Вне:
0 //because it is of an invalid height. Either 1 char too short or tall.
В:
| |
| |
| |
|____|
|
|
|
|
Вне:
4
В:
___
|
|___
| |
|___|
Вне:
0 //1 char too wide
В:
_
|_|
| |
Вне:
0 //it's not a digit
В:
__
|
|__
|
__|
Вне:
2
В:
_ _
_| _|
|_ _|
Вне:
0 //both would be valid individually, but input should be a *single* digit
В:
_
|_|
|_|
Вне:
1
В:
|
|
Вне:
1
В:
__|_
|
_ |
_
|__
Вне:
0
Это примерно обратное из преобразования числа в 7-сегментный дисплей шаблона , от 3 -х лет назад.
0
цифры, не так ли? Если вы не придумали способ их нарисовать.