Karakter değerleri ekleyen hesap makinesi


18

Görev

Bir dosyadan, stdin'den veya herhangi bir şeyden herhangi bir dizeyi alan bir hesap makinesi oluşturun ve karakterlerin tüm değerlerini toplar.

Misal

Input
Hello World!

Output
1085

kurallar

Hesap makinesinin sadece ASCII kodlamasını kabul etmesi gerekir.

En kısa kod kazanır.

notlar

M.buettner'ın yorumuna gelince, söylemeliyim ki, çokbaytlı kısmı düşünmedim.
Ben de bir bonus şey olarak bırakıyorum.
Hesap makinesi yazılı olarak çalıştırılmalıdır, bu yüzden derlemeden veya yorumlamadan önce değiştirmeye gerek yoktur.

Bonus

Synthetica sayesinde , işte bir bonus daha,

Girdisini kazandıkça kodunu kullandığınızda en düşük çıkışa sahip program bir yıldız alır.

Tamamen değiştirmek istemiyorum.

UTF-8'de (sağ) değeri çıkarmaya ek yazarsanız, bir yıldız alırsınız.

Dizüstü bilgisayarımda en hızlı çalışan kod (Lenovo Yoga 13 Intel Core i5 3317U 1.7Ghz, 8GB RAM, 128GB SSD, Intel HD 4000, Windows 8) bir yıldız alıyor.

Web kodları önce IE11 altında çakra ile, ardından FireFox 29.0.1'de SpiderMonkey ile çalışacak

Linux kodu Raspbian ile bir Raspberry Pi üzerinde çalışacaktır.

Test dizisi şudur:

q/%8hnp>T%y?'wNb\},9krW &D9']K$n;l.3O+tE*$*._B^s!@k\&Cl:EO1zo8sVxEvBxCock_I+2o6 yeX*0Xq:tS^f)!!7=!tk9K<6#/E`ks(D'$z$\6Ac+MT&[s[]_Y(`<g%"w%cW'`c&q)D$0#C$QGf>?A$iawvc,}`9!('`c&q)D$0#C$QGf>?A$iawvc,}`9!(

Eğlenin kodlama :)

Bonusscoring

Puanlamayı bu Cumartesi günü yapmayı planlıyorum, bu yüzden 07.06.14, bu tarihten sonraki tüm cevaplar bonus puan almaz;)

Burada test için kullanacağım kodu indirebilirsiniz çatal ve geliştirmek için çekinmeyin :)

Bonus nedeniyle küçük güncelleme, dizüstü bilgisayarım kısmen kırıldı, bu yüzden muhtemelen önümüzdeki hafta sonu yapacağım, bunun için gerçekten üzgünüm :(


3
Hello World!Bilgisayarımda ASCII değerleri için iki farklı dil kullandığım için 1085 alıyorum.
Kyle Kanos

1
Muhtemelen '!' düzenlemek 3 saniye daha hızlı idi ...
gxtaillon

1
Birisi aşağı oyları açıklayabilir misiniz?
Knerd

3
Benim tahminim, aşağı oyların gerçekten iyi bir sorun olmadığını gösteriyor.
Kyle Kanos

5
@Knerd çoğunlukla, çünkü çoğu dilde biraz fazla önemsiz (zaten sahip olduğunuz gönderilerin uzunluğundan da görebileceğiniz gibi)
Martin Ender

Yanıtlar:


10

GolfScript, 4 karakter

{+}*

*Tüm karakterleri toplamak için katlama operatörünü ( ) kullanır .

Boş dize ile çalışması gerekiyorsa, 9 karakter:

{{+}*}0if

Boş dizeyle çalışan alternatif bir 6 karakterlik sürüm sağladığı için @PeterTaylor'a teşekkürler:

0\{+}/

Boş dize üzerinde çalışmaz.
Howard

@ İyi nokta; düzenlendi.
Kapı tokmağı

0\{+}/boş dizeyi destekler
Peter Taylor

1
@ Aptal soru için özür dilerim, veri girişi nasıl yapılır? Kullandığım golfscript.apphb.com
Knerd

2
@immibid Garip şekilli bir göze sahip bir siklop. :-P (veya GolfScript'te "her birini takas et ve ekle" yüzü!)
Kapı tokmağı

7

APL (8)

+/⎕UCS⍞

Açıklama:

  • +/ toplamı
  • ⎕UCS unicode değerleri
  • karakter girişi

Sonuç ne olur Hello World!?
Knerd

@Knerd: 1085. Başka bir çıktı verirse doğru olmaz. Karakterlerin Unicode kod noktalarının değerlerini toplar.
marinus

tamam, ne anlama geldiğini
anlamadım

1
@knerd: klavyeden bir satır okumak anlamına gelir
marinus

Ücretsiz bir APL tercümanı biliyor musunuz?
Knerd

6

Haskell 36

main=interact$show.sum.map fromEnum

Metni nereden okuyor?
Knerd

Stdin. $ printf "Hello World!" | ./charsum
gxtaillon

tamam, Windows makinemde çalıştıramadım, evde
olduğumda rpi'de deneyeceğim

Kodunuzu çalıştırdığımda, sadece "Merhaba Dünya!" Çıktı olarak. Bu benim komut ECHO "Hello World! | ghci charsum.hs
satırım

1
kullanın interactve showyerine getContents>>=print:main=interact$show.sum.map fromEnum
Flonk

6

Shell + GNU araçları, 29 bayt

echo `od -An -tuC`|tr \  +|bc

Stdin'den girdi alır:

$ printf "%s" 'Hello World!' | ./addchars.sh 
1085
$ 

Kendi puanı: 2385


c, 52 bayt

c;main(p){while(~(p=getchar()))c+=p;printf("%d",c);}

Derleme (bazı uyarılar üretildi):

gcc addchars.c -o addchars

Stdin'den girdi alır:

$ printf "%s" 'Hello World!' | ./addchars 
1085 $ 

Kendi puanı: 4354


Bu harika bir cevap. GNU derleyicili CodeBlocks her zaman değişkenlerin türü yoksa örneğin int c, main (int p) şikayet eder. Bu yüzden bunların cevabınıza dahil edilmesi gerektiğini düşünüyorum.
bacchusbeale

@bacchusbeale Derleme uyarıları hakkında bir not ekledim, ancak bence bu genellikle c'de golf yaparken parkur için eşit. Kod beklendiği gibi derlendiği ve çalıştığı sürece uyarılar yok sayılabilir. Bkz. Codegolf.stackexchange.com/a/2230/11259 ve codegolf.stackexchange.com/a/2204/11259 . Elbette üretim kodu tamamen farklı bir konudur.
Dijital Travma

@DigitalTrauma tüm bu alanlar gerçekten gerekli mi? Kabuk boşlukları görmezden gelemez ve - yeni parametreleri işaretlemek için - kullanamaz mı?
Ashwin Gupta

@AshwinGupta Komuttan mı bahsediyorsun od? od -AntuCile aynı şeyi yapmaz od -An -tuC.
Dijital Travma

@DigitalTrauma evet öyleydim. Yapamam demek istedim od-An-tuCya daod -An-tuC
Ashwin Gupta

6

Javascript ( ES6 ) 51

alert([...prompt(x=0)].map(y=>x+=y.charCodeAt())|x)

@nderscore Daha ...önce ne yaptığını açıklayabilir misiniz prompt? Bu yeni bir ES6 mı yoksa ES6 öncesi mi?
WallyWest

1
@WallyWest Yayılan operatör olarak adlandırılır ve ES6 taslağının bir parçasıdır.
nderscore

@nderscore Yani Yayılma operatörü sözdizimini anlıyorsam, kullanımınız [...prompt(x=0)]istemi varsayılan değer olan 0'a (daha sonra toplamda kullanılacak) alır ve bu girdiyi bir karakter dizisi olarak uygular ... ? Hangisi teknik olarak aynı olurdu prompt(x=0).split(""), değil mi?
WallyWest

1
@WallyWest prompt(x=0), " x'i 0'a ayarla, x'i 0'a promptayar değeriyle çağır" anlamına gelir , yani 0'dır. (x=0,prompt(x))
Yazmakla

6

gs2 , 1 bayt

d

d( 0x64/ sum), elbette, standart girdi içindeki tüm baytları toplar.


5

Python 3-28 bayt

print(sum(map(ord,input())))

Örnek çalışma:

$ ./sum_string.py <<< 'Hello World!'
1085

, Girdiyi standart girdiden alır maps ordher karakterin ASCII değeri elde etmek ona işlevi, sumonu ve s prints.


Ninja'dım, aynı fikrim vardı. Bunun için +1.
seequ

@ TheRare Benimki daha uzun olmasına rağmen ben de öyle yaptım, çünkü Python 2.7 kullandım. Paslı
oluyorum

@Synthetica Her zaman cevabın ne olacağı Python 2.7 kullanıyorumprint sum(map(ord,raw_input()))
seequ

1
@TheRare Tam cevabım
buydu

Burada nitpicking, ancak bunu değiştirerek daha yüksek performansla map(ord,input())için input().encode(). Bayt nesneleri hala toplanabilir ve aynı uzunlukta kalır.
cjfaure

5

8086 Meclisi (16 bit) - 47 41 bayt

test.comDosyanın içeriği :

98 01 c3 b4 01 cd 21 3c 0d 75 f5 89 c7 c6 05 24
89 d8 b1 0a 4f 31 d2 f7 f1 80 ca 30 88 15 09 c0
75 f2 89 fa b4 09 cd 21 c3

Gerçek çalışma ilk 11 baytta yapılır; Sonuç ondalık gösterimde yazdırmak için geri kalana ihtiyacım var.

Kaynak kodu (DOS debug.comderleyicisine girdi olarak verin ):

a
; input the string; count the sum
    cbw
    add bx, ax
    mov ah, 1
    int 21
    cmp al, d
    jne 100
; Prepare for output: stuff an end-of-line marker
    mov di, ax
    mov [di], byte 24
    mov ax, bx
    mov cl, a
; 114
; Divide by 10; write digits to buffer
    dec di
    xor dx, dx
    div cx
    or  dl, 30
    mov [di], dl
    or  ax, ax
    jne 114
; Print the string
    mov dx, di
    mov ah, 9
    int 21
    ret

rcx 29
n test.com
w
q

Kod hakkında bazı notlar:

  • Yalnızca bir satırı işler (satır sonu karakteri 13'e kadar); satır sonu yoksa takılır
  • Yalnızca 7 bit karakterler desteklenir (aksi takdirde sonuçlar yanlıştır)
  • Boş giriş için çıkış 0
  • 64K'dan büyük çıkış işlenemiyor
  • 0x10d adresindeki talimat kendi üzerine yazar (saf tesadüf)
  • Bu programı kurmak ve çalıştırmak için DosBox gibi DOS emülatörlerini kullanmak zorundasınız

Bunu nasıl anlarsın? oO
Knerd

5

CJam, 3 bayt (toplam 260)

q1b

Şunları yapabilirsiniz çevrimiçi denemek .
Jimmy23013 2 karakter kesmek yardımcı için teşekkürler :)

Açıklama:

q     read the input into a string  
1b    convert from base 1, treating each character as its numeric value

1
q1bdaha kısadır.
jimmy23013

4

Befunge98, 6 bayt, toplam: 445

2j@.~+

Herhangi bir tercüman iyi olmalıdır. Kullandığım CCBI .

Aşağıdaki gibi kullanın:

printf 'Hello World!' | ccbi calc.fg

Çok baytlı grafikler ve boş dizeler için çalışır.

açıklama

  • 2j- sonraki iki talimatın üzerinden atlayın ( @ve .- aşağıya bakın)
  • ~ - bir sonraki karakteri yığına koy
  • +- yeni karakter kod değerini geçerli toplama ekleyin. Talimat işaretçisi başa sarar ve döngü tekrar eder
  • ne zaman ~bir EOF o pointer yönünü ve "gizli" iki evirir karşılaşmalar talimatları yürütür:
  • . - toplamı yazdır
  • @ - çıkış

4

Yakut, 13 12 bayt

p~9+gets.sum

sum, bir dizenin karakterlerini toplayan yerleşik bir işlevdir. getsDönüş değerinin sonundaki satırsonunu hesaba katmak için 10 çıkarır .

(Düzenlendi 4 yıl sonra değişime x-10karşı ~9+x... değerine ~9IS -10, ama bize arasındaki boşluğu kaldırmak sağlayan pbir byte tasarrufu ve argüman.)


Ruby'ye hiç aşina değilim, kodunuzu açıklayabilir misiniz lütfen?
Knerd

1
gets, yeni satır okunana kadar standarttan bir dize okuyan bir işlevdir, bir Dize döndürür. String # sum, Fixnum döndüren her karakterin değerlerini ekler. Fixnum # - sadece çıkarmadır. psatırdaki bir şeyin hata ayıklama değerini çıktılamak için kullanılan bir yöntemdir.
Kyle Smith

2

PowerShell - 27

[char[]]$args[0]|measure -s

Misal

> SumChars.ps1 'Hello World!'

Count    : 12
Average  : 
Sum      : 1085
Maximum  : 
Minimum  : 
Property : 

26 [char[]]"$args"|measure -ssadece bir $ arg girişi olduğu sürece kullanırsanız .
TessellatingHeckler

2

Julia - 11 7 karakter, sonuçta elde edilen toplam = 943 536

Soru, girdinin istediğiniz herhangi bir kaynaktan gelmesine izin verdiğinden, mevcut bir değişkeni seçiyorum. Değerlendirmek Aistediğimiz dizeyi içerdiğini varsayalım .

sum(A)1

Anlaşıldığı gibi, dizeyi doğrudan toplayabilirsiniz ve değerlendirecektir ... ancak, karakterlerin toplanmasının işlenme şekli nedeniyle, dizede tek sayıda karakter varsa, bir karakter çıkarır, herhangi bir tamsayı yerine. Bu itibarla, 1 ile çarparak int'e yaymaya zorlarız.

Eski versiyon:

sum(A.data)

Onaltılık bir gösterimde çıktı alır (toplam 256'dan küçükse, olur 0x??, aksi takdirde 8 bayt olur 0x????????). Sonucun kullanıldığı kodda kullanılırsa, tıpkı diğer herhangi bir sayı gibi çalışır (Julia'nın imzalanmamış girişleri gösterme şekli).

Sonucun değerini ondalık olarak görmek için yukarıdakileri olduğu int()gibi içine alın int(sum(A.data)).

Julia'yı tanımayan herkes için, Adeğişkenlere diğer atamaları yaptığınız gibi atarsınız . Yani, A="Hello World!"ya da A="sum(n.data)". Koyamanız "veya 'karakter girmeniz durumunda , en kolay olanı (Julia dize değişmezlerinin nüansları bilgisine ihtiyaç duymadığı için) A=readline(), ardından dizeyi STDIN (kazanılan ' t yeni satırlarla başa çıkmak). Newline için kaçış dizisi, her zamanki gibi \n, ama bunu readline () ile kullanabileceğinize inanmıyorum.


Lanet olası akıllı çözüm için +1 +1 ^^ Mesaj gönderebilir, test değerini değişkene nasıl atayabilirim n? Julia'yı hiç tanımıyorum;)
Knerd

@Knerd - Düzenledim. Umarım yardımcı olur.
Glen O

Harika teşekkür ederim. Daha sonra test etmeye çalışıyorum :)
Knerd

Küçük değişiklikler - anahtarlamalı değişken niçin A988 943 ila Elde edilen miktarı azaltma
Glen O

Tamam, çok daha büyük bir değişiklik - karakterleri ayıklamak yerine, dizeyi doğrudan toplayabileceğinizi fark ettim .data; ancak karakter olduklarından, tek sayıda karakter için bir karakter sonucu üretir. 1 ile çarpma bunu düzeltir.
Glen O

2

K5, 2 bayt (işlev), 5 bayt (program)

fonksiyon

+/

program

+/0:`

Bu zorluğun gönderilmesinden önce veya sonra K5'in oluşturulup oluşturulmadığından emin değilim. Ne olursa olsun ... BU MUHTEŞEM !!

K5'te, dizelerde aritmetik işlemler yaparsanız, karakterleri ASCII kodlarına dönüştürür. Yani bu sadece toplam operatörünü kullanır +/(aslında, artı + üzerinde).


2

Matlab / Oktav 4 bayt (bonus: 405)

Bu kod, işi yapan anonim bir işlevdir, bir dize alır ve gerekli sayıyı döndürür.

@sum

Cevaptan emin değilim gs2, ama en azından Julia cevabı ile aynı yaklaşımla, hala yazmalıyım sum(A). Bence sumtek başına tamam değil (geçerli kod = bile olmaz).
Kusur

2

Git (59 karakter)

func d(s string)(t int){for _,x:=range s{t+=int(x)};return}

Go'daki her şey varsayılan olarak utf8'dir. `` Sınırlayıcıların kendi içinden geçen kodeteks '' bir çıktı verir: 5399.


math.Summap
kedi


2

Gol> <> , 4 bayt (rakip olmayan)

Not: Bu dil meydan okumadan daha yenidir.

iEh+

'Golfçü' gibi telaffuz ediliyor mu?
kedi

@cat Evet, golfçü.
randomra

@randomra "gol • balık" veya "golf • ish" mi? Golü olan bir balıkta olduğu gibi, ya da golf gibi bir şey mi?
Cyoce

2

Javascript ES6, 41 bayt

_=>[..._].map(y=>x+=y.charCodeAt(),x=0)|x

@ETHproductions için 2 bayt kaydedildi teşekkürler!


1
Nasıl _=>[..._].map(y=>x+=y.charCodeAt(),x=0)|x?
ETHproductions

2

Python, 24 bayt

Bu, şu ana kadar herhangi bir Python çözümünden daha kısadır: dizeyi bağımsız değişken olarak alan ve toplamı döndüren adsız bir anonim işlev.

lambda x:sum(x.encode())

Çevrimiçi deneyin!

İlk olarak, x.encode()onu bir bytesnesneye dönüştürür . Sonra,sum karakter kodu değerlerini ekler. Bu bir lambda işlevi olduğundan, değer döndürülen sonuçtur.

Ayrıca, lambda x:sum(map(ord,x))aynı bayt sayısı için de olabilir .



1

C 32

f(char*s){return*s?*s+f(s+1):0;}

main(int argc,char **argv){return(argc?main(0,&(argv[1])):(**argv?**argv+main(0,argv)+((*argv)++?0:0):0));}(107 karakter) bir nedenden dolayı ilk karakteri görmezden gelir. Ayrıca, POSIX çıkış kodları yalnızca 8 bittir; bash echo $?,.

ana kullanmak vermedi kuralları biraz geniş. belki daha kısa bir şey üzerinde çalışacağım
bebe

@bebe Kurallar biraz değişti, ne gerektiğini netleştirmek için;)
Knerd

1

D (fonksiyon: 60)

Bunu kazanmak için kesinlikle değil.

Tam bir program olması gerekmediğini varsayarsak

int c(string i){int s;foreach(e;i){s+=cast(int)e;}return s;}

Böyle denir

void main ()
{
    import std.stdio;
    auto hw = "Hello World!";
    writefln("%s = %d", hw, c(hw));
}

Çıktı:

Hello World! = 1085

D (program: 133)

Satır kesmelerini saymaz.

void main(){import std.algorithm,std.stdio;stdin.byLine.map!((a){int s;foreach(e;a){s+=cast(int)e;}return s;}).reduce!"a+b".writeln;}

Okunabilirlik için daha fazla boşluk ve daha uzun değişken adlarıyla

void main () {
    import std.algorithm, std.stdio;

    stdin.byLine
        .map!((line) {
                int sum;
                foreach (ch; line) {
                    sum += cast(int)ch;
                }
                return sum;
            })
        .reduce!"a+b"
        .writeln;
}

Girişteki satır sonlarını desteklemek için, ya byLine(KeepTerminator.yes)- doğru karakter, 20 karakter için - ya da satırımın sonuna - ekleyebilirim '\n'- bu da tek satır girişini kırar ve 18 karakter için CRLF nedeniyle Windows'ta yanlış toplamı verebilir.


Kazanmayacağınızı
bilseniz

1

JavaScript (ES6) 54 58

alert([].reduce.call(prompt(),(v,c)=>v+c.charCodeAt(0),0))

Nderscore sayesinde 54 bayt :

alert([...prompt()].reduce((v,c)=>v+c.charCodeAt(),0))

İyi çalışıyor, şimdi es6fiddle.net'te denedim
Knerd

Firefox'u kullanabilirsiniz;)
core1024

1
Ben
işteydim

1
54:alert([...prompt()].reduce((v,c)=>v+c.charCodeAt(),0))
nderscore

1
Şimdi 51'e indirdik :)alert([...prompt(x=0)].map(y=>x+=y.charCodeAt())|x)
nderscore

1

Delphi ( 87 83)

function x(s:string):int64;var c:char;begin x:=0;for c in s do x:=result+ord(c)end;

Ungolfed

function x(s:string):int64;
var
  c:char;
begin
  x:=0;
  for c in s do
    x:=result+ord(c)
end;

Sonuca karakter değerini Sekleyerek döngüler ord. burada x == sonuç

Düzenlemeler:

İnt64'e geçip toplamı değiştirerek 4 karakter kaydetti.


Delphi (buraya sürümünüzü ekleyin) ücretsiz bir sürümü var mı?
Knerd

Hm .. Çok üzgünüm. Ama golf oynamadıkları yerde ne olduğunu açıklayabilirim ve eğer istersen bazı testler yapabilirim. Ücretsiz pascal aşağı yukarı aynı sözdizimine sahiptir, böylece bunu yapabilirsiniz.
Teun Pronk

Tamam, kontrol edeceğim.
Knerd

1

k (8 karakter)

+/6h$0:0

Q çeviri

sum `int$read0 0

Bonus değeri:

k)+/6h$0:0
+/6h$0:0
438i

1

J (7)

Çok yakın, ama şimdiye kadar ... Oh, sanırım 7 yeterince iyi, çünkü bu cevap boş dizeleri de kabul ediyor. (Bir değişkeni benim deyimimde girdi olarak temel alıyorum from a file, stdin or whatever)

+/a.i.b

Açıklama:

a.

┌┬┐├┼┤└┴┘│─ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������

a. tüm ASCII karakterlerini içerir.

   'people' i. 'pow'
0 2 6

x i. ypython'lara benzer [x.index(i) for i in y].

   a. i. 'Hello World!'
72 101 108 108 111 32 87 111 114 108 100 33

Bu nedenle, ASCII değerlerinin bir dizisine a. i. ydönüştürüry

   +/1 2 3 4 5 6
21

+/gibi sum: +/1 2 3 4 5 6anlamına gelir1+2+3+4+5+6

   +/ a. i. 'Hello World!'
1085

Eylemdeki her şey

Bonus için:

   b=:'+/a.i.b'
   +/a.i.b
482

Kötü değil sanırım.

   b=:'0\{+}/'
   +/a.i.b
478

Lanet olsun.

   A=:'+/a.i.A'
   +/a.i.A
449

Teşekkürler @algorithmshark

    A=:'+/3 u:A'
    +/3 u:A
413

Teşekkürler @marinus


Büyük açıklama için +1. Küçük bir soru, J'yi en iyi nerede uygulayabilirim?
Knerd

1
@Knerd Yapımcılardan ( jsoftware.com ) Sanırım herhangi bir çevrimiçi tercüman bilmiyorum. (Eğlenceli gerçek: Android için resmi bir konsolu var.) Jsoftware.com/download/j801
Junıʇǝɥʇuʎs

@Synthectica Çok güzel: D Şimdi bir Android akıllı telefona ihtiyacım var: P
Knerd

449 puanla sonuçlara göre yeniden adlandırılıyor b.A
algoritmahark

@algorithmshark Oh, doğru! Şimdilik o yıldızı alacağım;)
Junıʇǝɥʇuʎs

1

R, 35 karakter (toplam 3086) 26 bayt (toplam 2305)

sum(utf8ToInt(readline()))

readline()varsayılan olarak bir karakterden daha uzun scan(,"")ancak scangirdiyi boşluklara böler.

Kullanımı:

> sum(utf8ToInt(readline()))
Hello World!
[1] 1085
> sum(utf8ToInt(readline()))
sum(utf8ToInt(readline()))
[1] 2305
> sum(utf8ToInt(readline()))
q/%8hnp>T%y?'wNb\},9krW &D9']K$n;l.3O+tE*$*._B^s!@k\&Cl:EO1zo8sVxEvBxCock_I+2o6 yeX*0Xq:tS^f)!!7=!tk9K<6#/E`ks(D'$z$\6Ac+MT&[s[]_Y(`<g%"w%cW'`c&q)D$0#C$QGf>?A$iawvc,}`9!('`c&q)D$0#C$QGf>?A$iawvc,}`9!(
[1] 14835

1

Japt , 6 bayt (rakip olmayan)

Bu cevap rakipsizdir çünkü Japt bu meydan okuma gönderildikten sonra oluşturulmuştur.

U¬mc x

Gayet basit. Çevrimiçi deneyin!

Nasıl çalışır

U¬mc x  // Implicit: U = input string
U¬      // Split U into chars.
  mc    // Map each item to its char code.
     x  // Sum.
        // Implicit: output last expression

Meraktan, neden ¬bir çeşit olumsuzlamaya atamadın?
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ Acelem vardı ve önceden planlamadan ihtiyaç gördüğüm gibi onları atadım. Bir satır kod değiştirerek, kullanıma hazır daha mantıklı bir dizi var, ama hemen hemen her mevcut yanıtı geçersiz kılar çünkü bu konuda temkinli.
ETHproductions

Bu kolay bir düzeltme. Başlığa bir koşul ekleyin (ör. url/interpreter.html#new=1); onsuz herhangi bir şey eski karakter kümesini kullanır ve onunla hiçbir şey yeni karakter kümesini kullanır.
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ Teşekkürler, bunu düşüneceğim.
ETHproductions

1

PlatyPar , 2 bayt (rakip olmayan)

us

Çevrimiçi deneyin !

u giriş dizesindeki tüm charcode değerlerinin bir dizisini oluşturur ve s toplamlarını bulur.

Kendi kendine koştuğunda geri döner 232 .

Bu Conor'ın benzer Jolf cevap o (PlatyPar örtüktür) girişini almak için bir bayt kullanır, oysa ben (Jolf örtüktür) karakter kodlu bir diziye dönüştürebilirsiniz bir bayt kullandığını hariç.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.