Twoim zadaniem jest napisanie programu, który wydrukuje sumę kodów ASCII znaków samego programu. Nie wolno otwierać żadnego pliku (Wszelkie dane wejściowe, takie jak argumenty wiersza poleceń, standardowe dane wejściowe lub pliki są zabronione).
Program, który drukuje najniższą liczbę (tzn. Ma najniższą sumę kodów ASCII) wygrywa.
Oto przykład (nie najkrótszy) takiego programu napisanego w C:
#include <stdio.h>
int main(){
printf("4950");/*i*/
return 0;
}
(brak nowej linii po }
)
code-challenge
Alexandru
źródło
źródło
Odpowiedzi:
wc, drukuje 0
Ktoś powiedział „języki podobne do kotów”, więc ...
Pusty plik:
Wykonaj za pomocą
wc -c file.wc
. Przy 0 bajtach myślę, że jest to zwycięzca w kategorii „nie do końca język programowania”.Również
kot, drukuje 80 (baza 13)
Bez kończącej nowej linii, liczba 80 13 jest równa 104 w systemie dziesiętnym. Możesz skrócić z 60 17 (102 dec), ale pomyślałem, że „baza 13” byłaby warta więcej punktów maniaków.
EDYCJA: Nowy
wc
przykład, ten można uruchomić jako program.(Zgodnie z kodowaniem w Latin-1 - ÿ jest bajtem o wartości 255)
Suma bajtów to 2223, dane wyjściowe to:
źródło
wc -c
w pytaniu jest to zabronione.0 0 0
(jeśli plik przekazywany jako plik tego zabrania, to wszystkie języki skryptowe są również zabronione)wc
, -1 za podstawowe oszukiwanie, +1 za żarty w bazie 13.wc
to aplikacja, a nie język.PHP, m4 i inne języki podobne do kota: 150
Znaleźć to rozwiązanie za pomocą prostego programu Haskell, aby użyć siły:
źródło
5!
w J.5!
wynosi 86, a nie 125.Brainf * ck, 255
Nie wypisze to liczby 255, ale 255. znak ASCII.
Można to uznać za oszustwo, ponieważ kompilator BF przeskakuje the.
źródło
¤
to oszustwo, ponieważ jest to zwykły komentarz.JavaScript, drukuje
94326902Jest to pierwsze jak dotąd rozwiązanie quine, chyba że nie rozumiem poprawnie rozwiązania Haskell .
źródło
(function a(){b="("+a+")()";for(i=c=0;i<b.length;i++)c+=b.charCodeAt(i-0);alert(c)})()
PowerShell
drukuje 310.
źródło
Perl, 500
Istnieją dwie zakładki między
say
i500
. :)(Uruchom jako jednowierszowy z
perl -E
, o ile mogę stwierdzić, że jest to zgodne z zasadami)źródło
Rubin, drukuje 380
Brak końcowego znaku nowej linii po nawiasie zamykającym.
źródło
PowerShell
drukuje 230, oczywiście.
źródło
PowerShell
drukuje 320.
źródło
J, 150
Z zastrzeżeniem, że będzie to poprawne tylko 1/ 720 czasu.
źródło
Python, drukuje 781
Dwie spacje.
źródło
Element, 220
To jest język mojego własnego stworzenia i jest udokumentowany w mojej odpowiedzi na inne pytanie tutaj .
Oto instrukcja jego działania:
220
wypycha tę liczbę na stos. Następnieoutputs the top element of the stack. The
znak `` ! '' Wykonuje logiczne działanie na stosie kontrolnym (osobny stos), ustawiając go na 1.źródło
PHP, drukuje 4440
źródło
PowerShell, drukuje 3902
Sprawdza aktualnie uruchomioną linię i sumuje wartości punktów kodowych.
źródło
INTERCAL, 1572
Nie mogę uwierzyć, że nikt jeszcze nie zrobił INTERCAL!
(Obejmuje zakończenie nowej linii.) Ten program drukuje MDLXXII.
źródło
Perl, drukuje 690
Lub, jeśli możemy opublikować jedno-linijki (
perl -E
)Drukuje 570.
(Brak końcowych znaków nowej linii)
źródło
JavaScript,
1750 900 860790alert(790)
(Zwrot karetki (CR
\r
lub\x0D
) po lub przed programem)Programy te można znaleźć poprzez brutalne wymuszanie.
Większe wartości:
źródło
Java -128
Wiem, że czytanie standardowego wejścia jest niedozwolone, ale chciałem podać przykład, jak obliczyłem swój wynik.
Mój kod sumuje liczbę ASCII przekazanych przez stdin i wypisuje -128
Brak końcowej nowej linii
źródło
Rubin, drukuje 300
Jest przestrzeń i zakładka pomiędzy
p
i300
. Brak końca nowej linii.źródło
Pliki wsadowe, 500
Zwróć też uwagę na dwie spacje między „ECHO” (celowo wielkie litery) i „500”.
źródło
C, 1700
Dziwne - nikt jeszcze nie opublikował rozwiązania w języku C (z wyjątkiem przykładu w pytaniu).
Brak nowej linii na końcu.
źródło
K (
923 796 795 746513)Nie jestem pewien, czy to nie pasuje do zasad, czy nie. Nie używa standardowego wejścia, otwiera się jako wektor bajtów i sum.
Stosowanie:
edycja 2012.05.08 - nie trzeba hsymować uchwytu pliku 2012.05.09 - zapisano 1 punkt, konwertując na bajty zamiast int
2012.06 - Można zapisać ładunek punktów, czytając plik jako bajt zamiast tekstu:
źródło
J 198
i
Znaleziono go brutalną siłą. W J nie ma 1 lub 2 znaków char, a jedynym rozwiązaniem jest 3-char
150
. Poza wszelkimi błędami w moich poszukiwaniach, nie ma też innych rozwiązań 4-char.Z kanału IRC #jsoftware, mieliśmy również
<.%:10!20
429, a samo-zliczający quine+/a.i.2#(,{:)'+/a.i.2#(,{:)'''
w 1706 roku.źródło
1160 r
Przywołany za pomocą echa i spacji, cały String, w tym 7
echo 1160 | bc
spacji , ma bajt 1160.150 działa również dla bc:
źródło
D, 9752
ten faktycznie oblicza to podobnie jak mój quine
źródło
Biała spacja, 369
Ten 20-znakowy program wypisuje liczbę 369, która jest sumą wartości ascii jego znaków (które są znakami Tab, Space, Linefeed, tutaj symbolizowanymi odpowiednio przez T, S, L):
(369 = 7 * 9 + 8 * 32 + 5 * 10, istnieje 7 tabulatorów, 8 spacji i 5 linii).
źródło
Haskell, 7518
Mała modyfikacja mojego quine :
źródło
Brainf * ck, 253 (lub 252)
Niewielka poprawa rozwiązania Petera Olsona:
Pod warunkiem, że nie można drukować, można go jeszcze ulepszyć, dodając a
-
i zastępującH
go kodem ASCII 26.źródło
Scala 1090
println (1090)
źródło
Python, 5440
Najwyższy wynik wygrywa, prawda?
Pomyślałem, że i tak to opublikuję, b / c to rozwiązanie w połowie drogi.
źródło