Резисторы обычно имеют цветные полосы , которые используются для определения их сопротивления в Омах . В этой задаче мы рассмотрим только обычные четырехполосные, загар, резисторы с осевым выводом. Мы выразим их как:
xyzt
Где xпервая полоса для первой значащей цифры, yвторая полоса для второй значащей цифры, zтретья полоса для множителя и tчетвертая полоса для допуска .
Каждый из xyztпредставляет букву, которая сокращает цвет полосы:
K = Black
N = Brown
R = Red
O = Orange
Y = Yellow
G = Green
B = Blue
V = Violet
A = Gray
W = White
g = Gold
s = Silver
_ = None
Так, например, NKOgэто какой-то конкретный резистор.
Сопротивление можно рассчитать с помощью этой таблицы:
Как видно из таблицы:
xиyмогут быть любые буквы , за исключениемg,sи_.zможет быть что угодно , за исключением_.- Мы ограничимся
tтолько бытьg,sили_.
( Вот удобный калькулятор сопротивления, который работает с тем же набором резисторов, что и мы. )
Сопротивление умножается 10 * x + yна zмножитель с точностью до tпроцента.
Например, чтобы вычислить сопротивление
NKOg, мы видим, что:
Nозначает коричневый для 1.Kозначает черный для 0.OОранжевый означает за 10 3 .gозначает золото на ± 5%.Таким образом, сопротивление
(10*1 + 0)*10^3→10000 Ω ±5%.
Вызов
Напишите программу или функцию, которая принимает 4-символьную строку формы xyztи печатает или возвращает сопротивление в форме [resistance] Ω ±[tolerance]%.
- Резистор может быть «вверх ногами», то есть в обратном порядке
tzyx. Например, обаNKOgиgOKNдолжны производить10000 Ω ±5%. - Сопротивление всегда в простых омах, а не в киломах, мегомах и т. Д.
Ωможет быть замененohms, например10000 ohms ±5%.±может быть заменен+/-, например10000 Ω +/-5%.- Наличие конечных нулей справа от десятичной точки - это хорошо. (например
10000.0 Ω +/-5%) - Вы можете предположить, что ввод всегда действителен (
xиyникогдаgs_;zникогда_;tтолькоgs_). - Все 10 × 10 × 12 × 3 = 3600 возможных резисторов (2 × 3600 возможных входов) должны поддерживаться, даже если некоторые комбинации цветовых полос не создаются в реальной жизни.
Самый короткий код в байтах побеждает.
Примеры
gOKN→10000 ohms +/-5%KKR_→0 Ω +/-20%ggKN→1 ohms ±5%ggGO→3.5 Ω ±5%ssGO→0.350 Ω ±10%GOOs→53000 ohms +/-10%YAK_→48.0 ohms +/-20%_WAV→78000000000 Ω ±20%gBBB→66000000.000 ohms ±5%_RYR→2400.00 ohms ±20%
Если вам нравятся мои испытания, подумайте о том, чтобы проверить блочную сборку бот-стай!

:(2/'e*s~сохраняет[.