Os resistores geralmente possuem bandas codificadas por cores que são usadas para identificar sua resistência em Ohms . Neste desafio, consideraremos apenas os resistores normais de 4 bandas, tan e chumbo axial. Vamos expressá-los como:
xyzt
Onde xestá a primeira banda para o primeiro número significativo, yé a segunda banda para o segundo número significativo, za terceira banda para o multiplicador e ta quarta banda para a tolerância .
Cada um dos xyztrepresenta uma letra que abrevia a cor da banda:
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
Então, por exemplo, NKOgé um resistor em particular.
A resistência pode ser calculada com a ajuda desta tabela:
Como a tabela sugere:
xeypode haver qualquer letrag, excetos, e_.zpode ser qualquer coisa, exceto_.- Vamos restringir
ta ser apenasg,sou_.
A resistência é multiplicada 10 * x + ypelo zmultiplicador, até uma tolerância da tporcentagem.
Por exemplo, para calcular a resistência de
NKOg, vemos que:
Nsignifica marrom para 1.Ksignifica preto para 0.Osignifica laranja para 10 3 .gsignifica ouro para ± 5%.Então a resistência é
(10*1 + 0)*10^3→10000 Ω ±5%.
Desafio
Escreva um programa ou função que utilize uma seqüência de 4 caracteres do formulário xyzte imprima ou retorne a resistência no formulário [resistance] Ω ±[tolerance]%.
- O resistor pode estar "de cabeça para baixo", ou seja, na ordem inversa
tzyx. Por exemplo, ambosNKOgegOKNdevem produzir10000 Ω ±5%. - A resistência está sempre em ohms simples, nunca em quilohms, megohms, etc.
Ωpode ser substituído porohms, por exemplo10000 ohms ±5%.±pode ser substituído por+/-, por exemplo10000 Ω +/-5%.- Ter zeros à direita de um ponto decimal é bom. (por exemplo
10000.0 Ω +/-5%) - Você pode assumir que a entrada é sempre válida (
xeynuncags_;znunca_;tsomentegs_). - Todos os 10 × 10 × 12 × 3 = 3600 possíveis resistores (2 × 3600 possíveis entradas) precisam ser suportados, mesmo que algumas combinações de bandas de cores não sejam produzidas na vida real.
O código mais curto em bytes vence.
Exemplos
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%
Se você gosta dos meus desafios, considere dar uma olhada nos Block Building Bot Flocks!

:(2/'e*s~salva o[.