Sua tarefa é escrever um programa para imprimir a soma dos códigos ASCII dos caracteres do próprio programa. Você não tem permissão para abrir nenhum arquivo (qualquer entrada como argumentos de linha de comando, entrada ou arquivos padrão é proibida).
O programa que imprime o número mais baixo (ou seja, possui a menor soma de códigos ASCII) vence.
Aqui está um exemplo (não o mais curto) de um programa escrito em C:
#include <stdio.h>
int main(){
printf("4950");/*i*/
return 0;
}
(nenhuma nova linha depois }
)
code-challenge
Alexandru
fonte
fonte
Respostas:
wc, imprime 0
Alguém disse "línguas de gato", então ...
Um arquivo vazio:
Execute com
wc -c file.wc
. Com 0 bytes, acho que esse é o vencedor na categoria 'não é realmente uma linguagem de programação'.Além disso
gato, imprime 80 (base 13)
Sem nova linha final, o número 80 13 é equivalente a 104 em decimal. Você pode ir mais baixo com 60 17 (102 dec), mas imaginei que "base 13" valeria mais pontos de nerd.
EDIT: Novo
wc
exemplo, este pode ser executado como um programa.(Conforme codificado em latim-1 - o ÿ é um byte com o valor 255)
A soma dos bytes é 2223, a saída é:
fonte
wc -c
é proibido na pergunta de qualquer maneira.0 0 0
(se o arquivo que está sendo passado como arquivo o proíbe, todas as linguagens de script são também proibido)wc
, -1 para o engano de base, um para fazer piadas da base 13.wc
é uma aplicação, não uma linguagem.PHP, m4 e outras linguagens semelhantes a gatos: 150
Encontrei esta solução usando um programa simples de Haskell para forçá-la a força bruta:
fonte
5!
5!
é 86, não 125.Brainf * ck, 255
Isso não imprimirá o número 255, mas o 255º caractere ASCII.
Isso pode ser considerado trapaça porque o compilador BF pula sobre ¤.
fonte
¤
seja trapaça, pois é apenas um comentário normal.Javascript, imprime
94326902Esta é a primeira solução de quine até agora, a menos que eu não esteja entendendo corretamente a de Haskell .
fonte
(function a(){b="("+a+")()";for(i=c=0;i<b.length;i++)c+=b.charCodeAt(i-0);alert(c)})()
PowerShell
imprime 310.
fonte
Perl, 500
Existem duas guias entre
say
e500
. :)(Execute como uma linha com
perl -E
, até onde eu sei, isso está dentro das regras)fonte
Ruby, impressões 380
Sem nova linha após o parêntese de fechamento.
fonte
PowerShell
imprime 230, obviamente.
fonte
PowerShell
imprime 320.
fonte
J, 150
Com a ressalva de que estará correto apenas 1/720 das vezes.
fonte
Python, imprime 781
Dois espaços.
fonte
Element, 220
Esta é uma linguagem de minha própria criação e está documentada na minha resposta a outra pergunta aqui .
Aqui está uma explicação passo a passo de como ele funciona: O
220
número é colocado na pilha. Em seguida, o ``outputs the top element of the stack. The
! `Executa uma lógica que não está na pilha de controle (uma pilha separada), configurando-a como 1.fonte
PHP, impressões 4440
fonte
PowerShell, imprime 3902
Examina a linha atualmente executada e soma os valores do ponto de código.
fonte
INTERCAL, 1572
Ainda não acredito que ninguém fez INTERCAL!
(Inclui o encerramento da nova linha.) Este programa imprime o MDLXXII.
fonte
Perl, impressões 690
Ou, se podemos publicar one-liners (
perl -E
)Imprime 570.
(Sem novas linhas à direita)
fonte
JavaScript,
1750 900 860790alert(790)
(Retorno de carro (CR
\r
ou\x0D
) após ou antes do programa)Esses programas são encontrados por força bruta.
Valores maiores:
fonte
Java -128
Sei que ler stdin não é permitido, mas queria fornecer um exemplo de como calculei minha pontuação.
Meu código resume a contagem ASCII de si mesma passada em stdin e imprime -128
Nenhuma nova linha à direita
fonte
Ruby, impressões 300
Há um espaço e uma guia entre o
p
e o300
. Nenhuma nova linha à direita.fonte
Arquivos em lote, 500
Além disso, observe os dois espaços entre "ECHO" (maiúscula de propósito) e "500".
fonte
C, 1700
Estranho - ninguém postou uma solução C ainda (excluindo o exemplo na pergunta).
Nenhuma nova linha no final.
fonte
K (
923 796 795 746513)Não tenho certeza se isso entra em conflito com as regras ou não. Ele não usa stdin, ele se abre como um vetor de bytes e somas.
Uso:
editar 2012.05.08 - não é necessário hsym o identificador de arquivo 2012.05.09 - salvou 1 ponto convertendo para byte em vez de int
17/05/2012 - Pode salvar uma carga de pontos lendo o arquivo como bytestream em vez de texto:
fonte
J, 198
e
Encontrei por força bruta. Em J, não existem soluções de 1 ou 2 caracteres, e a única solução de 3 caracteres é
150
. Com exceção de erros na minha pesquisa, também não há outras soluções de 4 caracteres.No canal #jsoftware IRC, também tínhamos
<.%:10!20
429 e uma solução de contagem automática+/a.i.2#(,{:)'+/a.i.2#(,{:)'''
em 1706.fonte
bc 1160
invocada com eco e espaços em branco, toda a String, incluindo 7 espaços em branco,
echo 1160 | bc
possui um soma de bytes de 1160.150 também funcionam para bc:
fonte
D, 9752
este realmente calcula semelhante ao meu quine
fonte
Espaço em branco, 369
Este programa de 20 caracteres imprime o número 369, que é a soma dos valores ascii de seus caracteres (que são caracteres de tabulação, espaço e avanço de linha, aqui simbolizados por T, S, L, respectivamente):
(369 = 7 * 9 + 8 * 32 + 5 * 10, sendo 7 Tabs, 8 Spaces e 5 Linefeeds.)
fonte
Haskell, 7518
Uma pequena modificação do meu quine :
fonte
Brainf * ck, 253 (ou 252)
Ligeira melhoria na solução de Peter Olson:
Desde que não imprimíveis sejam permitidos, ele pode ser aprimorado ainda mais adicionando um
-
e substituindoH
pelo código ASCII 26.fonte
Scala 1090
impressão (1090)
fonte
Python, 5440
Maior pontuação ganha, certo?
Eu apenas pensei em publicá-lo de qualquer maneira b / c é uma solução quinine a meio caminho.
fonte