Tarefa
Sua tarefa é imprimir este texto exato:
A
BCD
EFGHI
JKLMNOP
QRSTUVWXY
ZABCDEFGHIJ
KLMNOPQRSTUVW
XYZABCDEFGHIJKL
MNOPQRSTUVWXYZABC
DEFGHIJKLMNOPQRSTUV
WXYZABCDEFGHIJKLMNOPQ
RSTUVWXYZABCDEFGHIJKLMN
OPQRSTUVWXYZABCDEFGHIJKLM
NOPQRSTUVWXYZABCDEFGHIJKLMN
OPQRSTUVWXYZABCDEFGHIJKLMNOPQ
RSTUVWXYZABCDEFGHIJKLMNOPQRSTUV
WXYZABCDEFGHIJKLMNOPQRSTUVWXYZABC
DEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL
MNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVW
XYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ
KLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXY
ZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOP
QRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI
JKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD
EFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA
BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ
Especificações
- Você pode fazer tudo em minúsculas em vez de todas em maiúsculas.
- Trailing newlines no final do triângulo é permitido.
- Espaços à direita após cada linha é permitida.
- Você deve imprimir em STDOUT em vez de gerar uma matriz de seqüências de caracteres.
Pontuação
Isso é código-golfe . Programa com menores vitórias na contagem de bytes.
code-golf
ascii-art
kolmogorov-complexity
Freira Furada
fonte
fonte
mod
função. Pode me fazer um se tiver tempo.Respostas:
Vim, 29 bytes
Onde
↵
representa a tecla Return,♥
a tecla Escape eβ
a tecla Backspace.fonte
␛
vez de♥
. E ao␈
invés deβ
. É para isso que esses caracteres Unicode foram criados. utf8icons.com/subsets/control-picturesPython 2, 65 bytes
fonte
Gelatina , 10 bytes
Experimente online!
Como funciona
fonte
ṁ
é ótimo !! [esperando para dizer parabéns por 100k repetições]H
é dividido pela metade eḤ
é seu inverso (não- dividido )./2
ou*2
, então é "Halve" ou "Double". Por isso fiquei confuso.27Ḷ²IRØAṁY
51Rm2RØAṁY
Excel VBA (80 bytes, 1742 bytes)
Excel, 1742 bytes
Inspirado pela resposta criativa do ugoren , consegui encontrar uma fórmula do Excel para criar o padrão, conforme mostrado no OP.
Cole esta fórmula na célula A1 e arraste todo o intervalo A1: A26.
O comprimento da fórmula é 67 bytes, mas você deve replicá-lo 26 vezes, portanto é igual a 67 * 26 = 1742 bytes. Aqui está a saída:
Excel VBA, 80 bytes
Agora é possível integrar o Excel ao VBA para automatizar o processo e economizar muitos bytes, pois o VBA está incorporado na maioria dos aplicativos do Microsoft Office, incluindo o Excel. Escreva e execute o seguinte código na Janela Imediata (use as teclas de combinação CTRL+ Gpara exibi-lo no Editor do Visual Basic):
O programa funciona imprimindo a fórmula do Excel acima no intervalo A1: A26. Infelizmente, o Excel e o VBA não possuem alfabeto interno.
fonte
Haskell, 67 bytes
Uma recursão simples ao longo do comprimento
i
da linha. Em cada etapa, os próximosi
caracteres são retirados de uma repetição infinita do alfabeto.fonte
Mathematica, 90 bytes
Função anônima. Não recebe entrada e retorna uma string como saída. Sugestões de golfe são bem-vindas. Um exemplo do que
Internal`PartitionRagged
faz:fonte
C, 79 bytes
Minha primeira resposta em C \ o /
Sugestões de golfe são mais que bem-vindas.
fonte
i;main(j){while(i<676)printf("\n%c"+(j*j^i++||!j++),i%26+65);}
i;main(j){for(;j<27;j*j^++i||puts("",j++))putchar(i%26+65);}
Braquilog , 37 bytes
Experimente online!
Explicação
Predicado principal:
Predicado 1: usado para gerar sequências variáveis de comprimentos ímpares.
fonte
Z
qual é porque26
é livre de quadrados.Pitão , 12 bytes
Experimente online!
fonte
JavaScript (ES6), 77
82 88O EcmaScript 6 é necessário apenas para salvar 1 byte usando uma string de modelo literal para nova linha.
Menos golfe
Teste
fonte
Perl,
424139 bytesApenas o código:
Uma versão mais curta óbvia infelizmente desencadeia um problema interno de perl (uso de valor liberado na iteração):
fonte
JavaScript, 129 bytes
fonte
[...'ABCDEFGHIJKLMNOPQRSTUVWXYZ']
vez de'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split``
.Pyke, 14 bytes
Experimente aqui!
fonte
Go, 133 bytes
fonte
MATLAB,
112 109 95 7977 bytesIsso também funcionará com o Octave , você pode tentar online aqui .
Então, após algumas mudanças importantes, salvei mais
1432 bytes. Este está ficando muito mais parecido com o comprimento que eu esperava do MATLAB. Deixei a versão antiga abaixo, pois é substancialmente diferente.Versão original:
Uau, esse acabou sendo mais longo do que eu pensava. Vou ver se não consigo extrair alguns bytes dele.
Uma versão não-gasta para explicar:
Agradecimentos
fonte
XPath 3.0 (e XQuery 3.0), 84 bytes
Explicação:
(1 to 26)!(65 to 90)
é o alfabeto 26 vezes(0 to 25)!(subsequence(XX, start, len),10)
leva 26 subsequências disso, cada uma seguida por nova linhasubsequence(X, .*.+1, 2*.+1)
toma subsequências sucessivas com posição inicial e comprimento: (1, 1), (2, 3), (5, 5), (10, 9) etc.codepoints-to-string()
transforma pontos de código Unicode em caracteresfonte
Ruby, 46 bytes
Veja no ideone: http://ideone.com/3hGLB0
fonte
05AB1E (alternativo) 15 bytes
Experimente online!
Explicação:
fonte
R,
120115111 bytesUngolfed:
Basicamente,
b
é o vetor dos números ímpares entre1
e51
, dando assim o comprimento de cada linha. Obviamente, asum
função soma os números desse vetor e fornece os índices inicial e final.-5 bytes graças a @plannapus!
-4 bytes graças a @plannapus!
fonte
a
uma vez, não precisa defini-lo, o que significa que você pode raspar mais alguns bytes:b=seq(1,51,2);v=c();for(i in 1:26){v=c(v,c(rep(LETTERS,26)[(sum(b[1:i-1])+1):sum(b[1:i])],"\n"))};cat(v,sep="")
funciona.b=seq
peça no corpo principal, para que fique ainda menos legível!R,
81 73 6563 bytesUma
for
abordagem simples de loop. Repita o alfabeto 26 vezes e passe por um intervalo de índice deslizante calculado usando(i^2-2*i+2):i^2
.fonte
Casca , 10 bytes
Experimente online!
Explicação
fonte
Lote, 123 bytes
fonte
05AB1E ,
1817 bytesExplicação
Experimente online!
fonte
Rexx,
7472 bytesUngolfed:
fonte
TSQL, 129 bytes
O USE MASTER no início do script é garantir que a consulta seja executada no banco de dados mestre, o padrão para muitos usuários (sem contar bytes para isso).
Golfe:
Ungolfed:
Violino
Violino para a versão mais antiga usando o caminho xml
fonte
PowerShell, 68 bytes
A seção antes do primeiro ponto e vírgula produz uma sequência contendo 26 cópias do alfabeto maiúsculo. A próxima seção injeta quebras de linha no índice de cada número quadrado (trabalhando para trás, para que eu não precise explicar a mudança). Por fim,
$a
no final, apenas empurra essa variável de string para o equivalente do PowerShellSTDOUT
.fonte
Dyalog APL, 18 bytes
↑2{⍺↓⍵⍴⎕a}/×⍨0,⍳26
fonte
C, 60 bytes
fonte
puts
leva apenas um argumento. (Algum comportamento indefinido é permitido no codegolf normalmente, mas isso é um pouco longe demais das faixas usuais) #C ++, 111 bytes
Primeiro tente um desses. Usa um int "c" para registrar qual letra ele precisa imprimir a qualquer momento. Depois que "c" passa 90 ('Z'), ele é redefinido para 65 ('A'). Imprime a pirâmide usando loops.
fonte
if(c<92)c=65
para levar um byte off, e você também pode ser capaz de fazerint a()
, em vez devoid a()
, mas eu não sou positivo se que funciona sem o retorno. Fora isso, acho que você precisa incluir#include <iostream>
na sua contagem de bytes.if(c>90)c=65
, mas obrigado pela sugestão, é uma boa ideia. Além disso, acho que vou incluí-lo, obrigado.PHP,
7669 bytesfonte