Quem não ama o teorema de Pitágoras a² + b² = c²? Escreva o método mais curto possível em qualquer idioma que considere o valor aeb e imprima "A hipotenusa deste triângulo retângulo é" + c. Mantenha c com apenas três casas decimais.
14
code-golf
tag diz explicitamente "O código-golfe é uma competição para resolver um problema específico no menor número de bytes de código-fonte". Consulte Código de pontuação de golfe (bytes vs. caracteres) .Respostas:
APL (54)
Teste:
Explicação:
⎕*2
: eleva os valores na entrada para a segunda potência+/
: pegue a soma.5*⍨
: elevar o resultado para a 0.5ª potência3⍕
: arredondar para 3 casas decimaisfonte
TI-BASIC,
76555352 bytesNão, parênteses de fechamento não são necessários. Além disso, menos bytes do que a resposta da APL :)
fonte
R▶Pr(A,B
.Fix 3:R►Pr(X,Y
Input
para pedirX
eY
é meio hilário. Se permitirmos isso, devemos também permitir a configuraçãoPolarGC
antesInput
, para que o comprimento da hipotenusa seja determinado pelo byteR
? É certo quePolarGC
os valores deX
eY
não são mais exibidos quando movemos o cursor, mas eles ainda são armazenados nas variáveis apropriadas. (Que seria, então nunca usa, mas é o pensamento que conta.)Python 2.7 - 76 caracteres
Explicação
| a + ib | = √ (a 2 + b 2 ) = c
==> a 2 + b 2 = c 2
PJ em hipotenusa
fonte
Sclipting , 46 caracteres
Espera a entrada como dois números (pode ser fracionário!) Separados por um espaço.
Isso é mais curto que o APL, apesar de ter que usar alguns truques inconvenientes.
Explicação
fonte
dc 54
Tangente a pontuação da resposta do APL!
Teste:
fonte
dc -e '2^r2^+3kv[The hypotenuse of this right triangle is ]Pp'
não espera nenhuma entrada, imprime"dc: stack empty"
3 vezes e depois "A hipotenusa deste triângulo retângulo é 2.000".dc -e '3 4 2^r2^+3kv[...
onde 3 e 4 são os parâmetros.C, 77 ou 99
77 caracteres se a entrada puder ser apenas os argumentos da função:
99 se for necessário ler a entrada do stdin:
Um grande obrigado a @Yimin Rong!
fonte
Powershell
Só para ver se eu poderia ...
fonte
Read-Host
.Rubi,
949082 caracteresAtualização (obrigado pelos comentários):
fonte
a**0.5
vez de longosMath.sqrt(a)
. E o espaço depoisp
também pode ser removido.%(Math...)
.MATLAB
7974fonte
Python 2.7 - 80 caracteres
fonte
C ++ - 90
fonte
pow(a,2)
quando você pode fazera*a
? Estou também não tenho certeza eu entendo o propósito de chão eo +.5 ea multiplicar e dividir em 1000Perl 6 (
6874 bytes){}
declara uma função lambda.[+]
é operador de soma,X**
é operador de potência cruzada (por exemplo,1, 2 X+ 10, 20
dá11, 21, 12, 22
). Nesse caso, o operador de potência cruzada usa um argumento, portanto o resultado tem o mesmo comprimento que@_
.@_
contém todos os argumentos da função.Se não for permitido ter uma função que possa levar um número errado de argumentos (inseguro), é possível substituir
[+] @_ X**2
por$^a**2+$^b**2
, onde$^a
e$^b
são argumentos de espaço reservado.fonte
Javascript (97)
fonte
C, 100 caracteres (supera a outra solução C por 1!)
Um algoritmo ridiculamente ineficiente.
fonte
DELPHI / PASCAL
Com travessão (157)
fonte
integer
paraint16
Você não precisa incluir as 2 primeiras linhas da sua resposta e pode remover o espaço em branco. fazendo tudo o que lhe dá 106 caracteres.EcmaScript 6,
8279Uso:
Atualização: Alterne para
Math.hypot()
fonte
Golfe (
69 67 6665)Isso seria muito mais fácil se o ponto flutuante fosse realmente suportado sem recorrer a soluções alternativas ... :)
Um link para testá-lo .
fonte
2.!~
quando2-1
é mais curto?the difference between
2-1` e2-1
errado, então provavelmente estava temporariamente confuso :) Corrigido, obrigado.Python 2 (79)
fonte
math
algumas economias.(a*a+b*b)**.5
def
salvar uma nova linha e um recuo.AWK -
8478 caracteresObrigado a Wasi por sugerir ^ operator e remover ()!
por exemplo
fonte
{printf"The hypotenuse of this right triangle is %.3f\n",($1^2+$2^2)^.5}
PowerShell: 111
Código de golfe
Passo a passo
1..2|%{sv $_ (read-host)};
Obtém duas entradas interativamente do usuário e as armazena em $ 1 e $ 2. Pode ser capaz de reduzir algum comprimento usando argumentos ou entradas de pipeline."The hypotenuse of this right triangle is
Texto necessário na saída, de acordo com as especificações do desafio.$(
... O)"
bloco de código encapsulado será processado como script antes de ser incluído na saída."{0:N3}"-f
Formata a saída do próximo bit de código como um número com exatamente três dígitos após o ponto decimal.[math]::sqrt(
...)
Obtém a raiz quadrada do valor encapsulado.$1/1*$1+$2/1*$2
Serve como nosso "a ^ 2 + b ^ 2". Multiplicar um número por si só é a maneira mais curta de quadrá-lo no PowerShell, mas as variáveis precisam ser divididas por 1 primeiro para forçá-las a números inteiros. Caso contrário, eles são tratados como texto e 3 * 3 + 4 * 4 seria 3334444 em vez de 25.fonte
JavaScript: 83
Atualmente, a implementação JS mais curta usando
stdin
: DFunciona apenas no Firefox 27.0+ (EcmaScript 6)
JavaScript: 78
Se pudermos usar apenas duas variáveis (como muitos scripts fazem aqui):
fonte
dc, 55
fonte
Java, 112
(Também imprime um erro No Such Method, embora não tenha certeza se isso é contra as regras)
Java, 149
(Sem erro)
fonte
C #
Apenas método (114)
Programa completo (171)
Programa completo (sem usar o método - 141)
fonte
JavaScript
11810693Diferentemente da solução de @ micha, a minha recebe duas variáveis via função e envia o alerta do resultado.
function(a,b){m=Math;c=d=>d*d,e=1e3;alert("The hypotenuse of this right triangle is "+m.round(m.sqrt(c(a)+c(b))*e)/e)}
function(a,b){e=1e3;alert("The hypotenuse of this right triangle is "+Math.round(Math.sqrt(a*a+b*b)*e)/e)}
A seta gorda funciona para o resgate!
h=(a,b,e=1e3)=>"The hypotenuse of this right triangle is "+Math.round(Math.sqrt(a*a+b*b)*e)/e
fonte
c()
. O aliasingMath
não salva bytes no seu caso.c64 basic v2,
6066 bytesCaptura de tela:
Como tentar.
fonte
R,
61bytescat
exibe seu conteúdo para STDOUT.A
scan()
função recebe a entrada do usuário do teclado. Essa entrada existe como um vetor, no qual^2
é aplicada (a^
função é vetorizada) esum()
soma os elementos do vetor.sqrt
gera a raiz quadrada, que é arredondada para 3 casas decimais porround(,3)
Agradecemos a @caird coinheringaahing por notar que a resposta anterior não foi arredondada.
fonte
ARBLE , 73 bytes
Experimente online!
fonte
sqrt(a^2+b^2)
, isso tem muitos clichês desnecessários.OML , 57 bytes
Experimente online!
Parte 1
Isso simplesmente gera a string
Parte 2
fonte
Gelatina , 32 caracteres
Experimente online!
Provavelmente existe uma melhor compactação de strings que me permite contornar a necessidade de me juntar a espaços, mas estava tendo problemas para encontrá-lo.
Explicação:
fonte
only three decimal places
meiosless than or equal to three decimal places
, a saída parece boa.