Calculadora que agrega valores de caracteres

18

Tarea

Construya una calculadora, que tome cualquier cadena, de un archivo, stdin o lo que sea, y sume todos los valores de los caracteres.

Ejemplo

Input
Hello World!

Output
1085

Reglas

La calculadora debe aceptar solo la codificación ASCII.

El código más corto gana.

Notas

En cuanto al comentario de m.buettner, debo decir que no pensé en la parte multibyte.
Así que también lo dejo como algo extra.
La calculadora debe ejecutarse como está escrita, por lo que no es necesario modificarla antes de compilarla o interpretarla.

Prima

Gracias a Synthetica , aquí hay una ventaja más,

El programa que tiene la salida más baja cuando usa su código como su entrada gana obtiene una estrella.

No quiero modificarlo por completo.

Si lo escribe adicionalmente para generar el valor (derecho) en UTF-8, obtendrá una estrella.

El código que se ejecuta más rápido en mi computadora portátil (Lenovo Yoga 13 Intel Core i5 3317U 1.7Ghz, 8GB RAM, 128GB SSD, Intel HD 4000, Windows 8) se convierte en una estrella.

Los códigos web se ejecutarán primero en IE11 con chakra y luego en FireFox 29.0.1 con SpiderMonkey

El código de Linux se ejecutará en una Raspberry Pi con Raspbian.

La cadena de prueba es esta:

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!(

Diviértete codificando :)

Bonusscoring

Planeo hacer la puntuación este sábado, así que el 07.06.14, todas las respuestas después de esa fecha no obtendrán puntos de bonificación;)

Puede descargar el código que usaré para probar aquí, no dude en bifurcarlo y mejorarlo :)

Pequeña actualización debido a la bonificación, mi computadora portátil está parcialmente rota, así que lo haré probablemente el próximo fin de semana, lo siento mucho :(

Knerd
fuente
3
Obtengo 1085 por Hello World!usar dos idiomas diferentes para valores ASCII en mi computadora.
Kyle Kanos
1
Probablemente se olvidó de agregar el '!'. editar eras 3 segundos más rápido ...
gxtaillon 05 de
1
¿Podría uno por favor explicar los votos negativos?
Knerd
3
Supongo que los votos negativos indican que no es realmente un buen problema.
Kyle Kanos
55
@Knerd principalmente, porque es un poco demasiado trivial en la mayoría de los idiomas (como puede ver por la longitud de las presentaciones que ya recibió)
Martin Ender

Respuestas:

10

GolfScript, 4 caracteres

{+}*

Simplemente usa el operador de plegado ( *) para sumar todos los caracteres.

Si tiene que trabajar con la cadena vacía, 9 caracteres:

{{+}*}0if

Gracias a @PeterTaylor por proporcionar una versión alternativa de 6 caracteres que funciona con una cadena vacía:

0\{+}/
Pomo de la puerta
fuente
No funciona en la cadena vacía.
Howard
@Howard Buen punto; editado
Pomo de la puerta
0\{+}/admite cadena vacía
Peter Taylor
1
@Doorknob perdón por la estúpida pregunta, ¿cómo ingreso datos? Uso golfscript.apphb.com
Knerd
2
@immibid Un cíclope con un ojo de forma extraña. :-P (o, en GolfScript, la cara "intercambiar y agregar cada uno")
Pomo de la puerta
7

APL (8)

+/⎕UCS⍞

Explicación:

  • +/ la suma de
  • ⎕UCS valores unicode de
  • entrada de caracteres
marinus
fuente
¿Cuál sería el resultado Hello World!?
Knerd
@Knerd: 1085. No sería correcto si proporcionara otra salida. Suma los valores de los puntos de código Unicode de los caracteres.
marinus
ok, no
entendí
1
@knerd: significa leer una línea desde el teclado
marinus
¿Conoces un intérprete de APL que es gratis?
Knerd
6

Haskell 36

main=interact$show.sum.map fromEnum
gxtaillon
fuente
¿De dónde lee el texto?
Knerd
stdin. $ printf "Hello World!" | ./charsum
gxtaillon
ok, no pude ejecutarlo en mi máquina Windows, lo intentaré en el rpi cuando esté en casa
Knerd
Cuando ejecuto su código, me sale la cadena "¡Hola, mundo!" como salida. Esta es mi línea de comando:ECHO "Hello World! | ghci charsum.hs
Knerd
1
usar interacty en showlugar de getContents>>=print:main=interact$show.sum.map fromEnum
Flonk
6

Herramientas de Shell + GNU, 29 bytes

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

Toma entrada de stdin:

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

Puntaje propio: 2385


c, 52 bytes

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

Compilar con (algunas advertencias producidas):

gcc addchars.c -o addchars

Toma entrada de stdin:

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

Puntaje propio: 4354

Trauma digital
fuente
Esta es una gran respuesta. CodeBlocks con el compilador GNU siempre se queja si las variables no tienen tipo, por ejemplo, int c, main (int p). Así que creo que deberían incluirse en su respuesta.
bacchusbeale
@bacchusbeale Agregué una nota sobre las advertencias de compilación, pero creo que esto es generalmente normal cuando se juega golf en c. Siempre que el código se compile y se ejecute como se esperaba, se pueden ignorar las advertencias. Consulte codegolf.stackexchange.com/a/2230/11259 y codegolf.stackexchange.com/a/2204/11259 . Por supuesto, el código de producción es un asunto completamente diferente.
Trauma digital
@DigitalTrauma, ¿son realmente necesarios todos esos espacios? ¿Puede Shell no ignorar los espacios en blanco y usar el - para marcar nuevos parámetros?
Ashwin Gupta
@AshwinGupta ¿Estás hablando del odcomando? od -AntuCno hace lo mismo que od -An -tuC.
Trauma digital
@DigitalTrauma, sí. Me refiero a que no podría hacer od-An-tuCood -An-tuC
Ashwin Gupta
6

Javascript ( ES6 ) 51

alert([...prompt(x=0)].map(y=>x+=y.charCodeAt())|x)
nderscore
fuente
@nderscore ¿Puedes explicar qué hace el ...antes prompt? ¿Es esto algo nuevo de ES6 o es anterior a ES6?
WallyWest
1
@WallyWest Se llama operador de propagación y es parte del borrador de ES6.
nderscore
@nderscore Entonces, si entiendo la sintaxis del operador de propagación, su uso de [...prompt(x=0)]ha tomado la solicitud con un valor predeterminado de 0 (que luego se usará en la suma), y aplica esa entrada como una matriz de caracteres ... ? Que técnicamente sería lo mismo que prompt(x=0).split(""), ¿verdad?
WallyWest
1
@WallyWest prompt(x=0)significa "establecer x en 0, llamar promptcon el valor de establecer x en 0", es decir, 0. Sería equivalente a escribir(x=0,prompt(x))
Cyoce
6

gs2 , 1 byte

d

d( 0x64/ sum), por supuesto, resume todos los bytes en la entrada estándar.

Lynn
fuente
5

Python 3 - 28 bytes

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

Ejemplo de ejecución:

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

Obtiene la entrada de stdin, maps la ordfunción para obtener el valor ASCII de cada carácter, sums it y prints.

monorraíl subterráneo
fuente
Ninja'd, tuve exactamente la misma idea. +1 por eso.
seequ
@TheRare Yo también, aunque el mío era más largo, porque usé Python 2.7. Me estoy
oxidando
@Synthetica Siempre uso Python 2.7, en el cual la respuesta hubiera sidoprint sum(map(ord,raw_input()))
ver
1
@TheRare Cuál fue mi respuesta exacta;)
ɐɔıʇǝɥʇuʎs
Nitpicking aquí, pero puede hacer que funcione mejor cambiando map(ord,input())a input().encode(). Los objetos de bytes aún se pueden sumar, y se mantiene la misma longitud.
cjfaure
5

Conjunto 8086 (16 bits) - 47 41 bytes

Los contenidos del test.comarchivo son:

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

El trabajo real se realiza en los primeros 11 bytes; Necesito el resto para imprimir el resultado en notación decimal.

Código fuente (dar como entrada al debug.comensamblador de DOS ):

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

Algunas notas sobre el código:

  • Solo maneja una línea (hasta el final del carácter de línea 13); se cuelga si no hay fin de línea
  • Solo se admiten caracteres de 7 bits (de lo contrario, los resultados son incorrectos)
  • Salidas 0 para entrada vacía
  • No puede manejar una salida mayor a 64K
  • La instrucción en la dirección 0x10d se sobrescribe (pura coincidencia)
  • Tiene que usar emuladores de DOS como DosBox para ensamblar y ejecutar este programa
anatolyg
fuente
¿Cómo puedes entender eso? oO
Knerd
5

CJam, 3 bytes (suma 260)

q1b

Puedes probarlo en línea .
Gracias jimmy23013 por ayudar a cortar 2 caracteres :)

Explicación:

q     read the input into a string  
1b    convert from base 1, treating each character as its numeric value
aditsu
fuente
1
q1bEs más corto.
jimmy23013
4

Befunge98, 6 bytes, suma: 445

2j@.~+

Cualquier intérprete debería estar bien. Yo uso CCBI .

Use de la siguiente manera:

printf 'Hello World!' | ccbi calc.fg

Funciona para caracteres multibyte y cadenas vacías.

Explicación

  • 2j- saltar sobre las siguientes dos instrucciones ( @y. - ver más abajo)
  • ~ - poner el siguiente personaje en la pila
  • +- Agregar el valor del código del nuevo carácter a la suma actual. El puntero de instrucción se ajusta al principio y el ciclo se repite.
  • cuando ~ encuentra un EOF, invierte la dirección del puntero y se ejecutan las dos instrucciones "ocultas":
  • . - imprimir la suma
  • @ - salida
har-wradim
fuente
4

Ruby, 13 12 bytes

p~9+gets.sum

sumes una función incorporada que suma los caracteres de una cadena. Resta 10 para dar cuenta de la nueva línea al final degets valor de retorno '.

(Editado 4 años después para cambiar x-10a ~9+x... el valor de ~9es -10, pero nos permite eliminar el espacio entre py su argumento, guardando un byte).

Pomo de la puerta
fuente
No estoy familiarizado con Ruby en absoluto, ¿podría explicar su código por favor?
Knerd
1
gets es una función que lee una cadena desde el estándar hasta que se lee una nueva línea, devuelve una cadena. String # sum agrega los valores de cada carácter, que devuelve un Fixnum. Fixnum # - es solo resta. pes un método para generar el valor de depuración de algo en una línea.
Kyle Smith
2

PowerShell - 27

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

Ejemplo

> SumChars.ps1 'Hello World!'

Count    : 12
Average  : 
Sum      : 1085
Maximum  : 
Minimum  : 
Property : 
Rynant
fuente
26 si usa [char[]]"$args"|measure -ssiempre que solo haya una entrada $ arg.
TessellatingHeckler
2

Julia - 11 7 caracteres, suma resultante = 943 536

Como la pregunta permite que la entrada provenga de la fuente que desee, elijo una variable existente. Suponga que Acontiene la cadena que deseamos evaluar.

sum(A)1

Como resultado, puede sumar la cadena directamente, y evaluará ... sin embargo, debido a la forma en que se maneja la suma de caracteres, si hay un número impar de caracteres en la cadena, generará un carácter, en lugar de un entero de cualquier tipo. Como tal, lo forzamos a lanzar a int multiplicando por 1.

Versión antigua:

sum(A.data)

Saldrá en una notación hexadecimal (si la suma es menor que 256, será 0x??, de lo contrario será 8 byte como 0x????????). Si se usa en el código donde se usa el resultado, funcionará como cualquier otro número (así es como Julia muestra las entradas sin firmar).

Para ver el valor del resultado en decimal, encierre lo anterior en int(), como en int(sum(A.data)).

Para cualquiera que no conozca a Julia, usted asigna Aexactamente de la misma manera que hace otras asignaciones a las variables. Entonces, A="Hello World!"o A="sum(n.data)". En el caso de que usted necesita para poner en "o 'caracteres, hay múltiples opciones, el más fácil de los cuales (ya que evita la necesidad de conocimiento de los matices de los literales de cadena Julia) está A=readline(), siguieron simplemente escribiendo en la cadena en STDIN (won' t manejar nuevas líneas, sin embargo). La secuencia de escape para nueva línea es, como de costumbre, \npero no creo que pueda usar eso con readline ().

Glen O
fuente
+1 para la maldita solución inteligente ^^ ¿Podría publicar, cómo asignar el valor de prueba a la variable n? No conozco a Julia en absoluto;)
Knerd
@Knerd: lo he editado. Espero que ayude.
Glen O
Genial, gracias. Intento probarlo más tarde :)
Knerd
Cambio menor: se cambió la variable de na Apara reducir la suma resultante de 988 a 943.
Glen O
OK, cambio mucho mayor: me di cuenta de que puedes sumar la cadena directamente, en lugar de extraer los caracteres con .data; pero como son personajes, producen un resultado de personaje para un número impar de caracteres. La multiplicación por 1 corrige eso.
Glen O
2

K5, 2 bytes (función), 5 bytes (programa)

Función

+/

Programa

+/0:`

No estoy seguro de si K5 se creó antes o después de publicar este desafío. Independientemente ... ¡ESTO ES IMPRESIONANTE!

En K5, si realiza operaciones aritméticas en cadenas, convierte los caracteres a sus códigos ASCII. Entonces, esto solo usa el operador de suma +/(en realidad, es más + más).

kirbyfan64sos
fuente
2

Matlab / Octave 4 bytes (bonificación: 405)

Este código es una función anónima, que hace el trabajo, tomará una cadena y devolverá el número requerido.

@sum
falla
fuente
No estoy seguro de la gs2respuesta, pero al menos con el mismo enfoque que la respuesta de Julia, aún debería escribir sum(A). Creo que sumsolo no está bien (ni siquiera sería un código válido =).
flawr
2

Ir (59 caracteres)

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

Todo en Go es utf8 por defecto. El texto de código en `delímetros ejecutados a través de sí mismo da una salida de: 5399.

voutasaurus
fuente
Tengo que decir que estoy bastante sorprendido de que no se pueda math.Sumusar con mapo similar
cat
2

Jolf, 2 bytes (no competidor)

Pruébalo aquí!

ui
u  sum of
 i  the input string

Umm ... no sé qué más decir.

Conor O'Brien
fuente
2

Gol> <> , 4 bytes (no competitivos)

Nota: este lenguaje es más nuevo que el desafío.

iEh+
randomra
fuente
¿Se pronuncia como 'Golfish'?
gato
@cat Sí, es de golf.
randomra
@randomra es ese "gol • pez" o "golf • ish"? ¿Como en un pez con gol, o algo así como el golf?
Cyoce
2

Javascript ES6, 41 bytes

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

¡Gracias a @ETHproductions por 2 bytes guardados!

Mama Fun Roll
fuente
1
¿Qué tal _=>[..._].map(y=>x+=y.charCodeAt(),x=0)|x?
ETHproductions
2

Python, 24 bytes

Esto es más corto que cualquier solución de Python hasta ahora: una función anónima sin nombre, que toma la cadena como argumento y devuelve la suma.

lambda x:sum(x.encode())

Pruébalo en línea!

Primero, lo x.encode()transforma en un bytesobjeto. Luego, sumagrega los valores del código de caracteres. Como se trata de una función lambda, el valor es implícitamente devuelto.

Además, uno podría tener lambda x:sum(map(ord,x))el mismo número de bytes.

FlipTack
fuente
2

SML 42 36

Solo agrego otro idioma.

fun$x=foldl op+0(map ord(explode x))

Convierte String en una matriz de caracteres, calcula el número ASCII de cada valor y calcula la suma de todos los números ASCII.

alguien
fuente
1
Puedes soltar algunos espacios y el líder ;. 36 bytes: tio.run/##DcpBCoAgEAXQq0zRQomiC7ivdYuWEWgRfB2xKby9uXzwHo/…
Laikoni
1

C 32

f(char*s){return*s?*s+f(s+1):0;}
bebe
fuente
main(int argc,char **argv){return(argc?main(0,&(argv[1])):(**argv?**argv+main(0,argv)+((*argv)++?0:0):0));}(107 caracteres) aunque ignora el primer personaje por alguna razón. Además, los códigos de salida POSIX son solo de 8 bits; en bash, echo $?.
las reglas eran un poco amplias, así que no utilicé main. Voy a trabajar en algo más corto tal vez
bebe
@bebe cambié un poco las reglas, para dejar en claro lo que se necesita;)
Knerd
1

D (función: 60)

Definitivamente no en él para ganarlo.

Asumiendo que no necesita ser un programa completo

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

Llamado así

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

Salida:

Hello World! = 1085

D (programa: 133)

No cuenta saltos de línea.

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;}

Con más espacios en blanco y nombres de variables más largos para facilitar la lectura.

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;
}

Para admitir saltos de línea en la entrada, podría usar byLine(KeepTerminator.yes), de la manera correcta, para 20 caracteres, o agregar un '\n'a mi línea, que rompe la entrada de una sola línea y puede dar la suma incorrecta en Windows debido a CRLF, para 18 caracteres.

Hugo Dubé
fuente
+1 por publicar incluso si sabes que no
ganarás
1

JavaScript (ES6) 54 58

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

54 bytes gracias a nderscore :

alert([...prompt()].reduce((v,c)=>v+c.charCodeAt(),0))
core1024
fuente
Funciona bien, ya lo probé en es6fiddle.net
Knerd
Podrías usar Firefox;)
core1024
1
Estaba en el trabajo así que: D
Knerd
1
54:alert([...prompt()].reduce((v,c)=>v+c.charCodeAt(),0))
nderscore
1
Lo bajé a 51 ahora :)alert([...prompt(x=0)].map(y=>x+=y.charCodeAt())|x)
nderscore
1

Delfos ( 87 83)

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

Sin golf

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

Recorre Sagregando el ordvalor del carácter al resultado. donde x == resultado

Ediciones:

Guardado 4 caracteres cambiando a int64 y cambiando la suma a la suma.

Teun Pronk
fuente
¿Tiene una versión gratuita de Delphi (inserte su versión aquí) disponible?
Knerd
Hm .. Realmente no lo siento. Pero puedo explicar lo que sucede en el campo de golf y hacer algunas pruebas si lo desea. El pascal libre tiene más o menos la misma sintaxis, por lo que puede hacer eso.
Teun Pronk
Ok, voy a revisar eso.
Knerd
1

k (8 caracteres)

+/6h$0:0

Q traducción

sum `int$read0 0

Valor de bonificación:

k)+/6h$0:0
+/6h$0:0
438i
skeevey
fuente
1

J (7)

Tan cerca, pero tan lejos ... Oh, bueno, supongo que 7 es lo suficientemente decente, ya que esta respuesta también acepta cadenas vacías. (Estoy basando mi uso de una variable como entrada en la frase from a file, stdin or whatever)

+/a.i.b

Explicación:

a.

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

a. contiene todos los caracteres ASCII.

   'people' i. 'pow'
0 2 6

x i. yes similar al de pitón [x.index(i) for i in y].

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

Por lo tanto, se a. i. yconvierte yen una matriz de sus valores ASCII

   +/1 2 3 4 5 6
21

+/es como sum: +/1 2 3 4 5 6significa1+2+3+4+5+6

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

Todo en acción

Por el bono:

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

No está mal, supongo.

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

Bueno, maldita sea.

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

Gracias @algorithmshark

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

Gracias @marinus

ɐɔıʇǝɥʇuʎs
fuente
+1 por la gran explicación. Una pequeña pregunta, ¿dónde puedo ejecutar mejor a J?
Knerd
1
@Knerd De los creadores ( jsoftware.com ) Supongo que no conozco intérpretes en línea. (Dato curioso
Junıʇǝɥʇuʎs
@ Synthectica Eso es genial: D Ahora necesito un teléfono inteligente Android: P
Knerd
Cambiar el nombre ba Alos resultados en una puntuación de 449.
algorithmshark
@algorithmshark ¡Oh, cierto! Reclamaré esa estrella por ahora;)
ɐɔıʇǝɥʇuʎs
1

R, 35 caracteres (suma de 3086) 26 bytes (suma de 2305)

sum(utf8ToInt(readline()))

readline()es un carácter más largo que, scan(,"")pero scandivide la entrada en espacios de forma predeterminada.

Uso:

> 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
plannapus
fuente
1

Japt , 6 bytes (no competitivos)

Esta respuesta no es competitiva porque Japt se creó después de publicar este desafío.

U¬mc x

Bastante simple. Pruébalo en línea!

Cómo funciona

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
ETHproducciones
fuente
Por curiosidad, ¿por qué no asignaste ¬una negación de algún tipo?
Conor O'Brien
@ CᴏɴᴏʀO'Bʀɪᴇɴ Porque tenía prisa y solo los asigné como vi necesidad, sin planear con anticipación. Tengo un conjunto que tiene más sentido listo para ser implementado, al cambiar una línea de código, pero desconfío de eso porque invalidaría casi todas las respuestas existentes.
ETHproductions
Esa es una solución fácil. Agregue un condicional al encabezado (por ejemplo, url/interpreter.html#new=1); todo lo que no use el antiguo juego de caracteres, y todo lo que use usará el nuevo juego de caracteres.
Conor O'Brien
@ CᴏɴᴏʀO'Bʀɪᴇɴ Gracias, lo consideraré.
ETHproductions
1

PlatyPar , 2 bytes (no competitivos)

us

Pruébalo en línea !

ugenera una matriz de todos los valores de código de char en la cadena de entrada y sencuentra su suma.

Cuando se ejecuta sobre sí mismo, vuelve 232.

Esto es similar a la respuesta Jolf de Conor , excepto que uso un byte para convertir la cadena en una matriz de códigos de caracteres (que está implícito en Jolf), mientras que usa un byte para recuperar la entrada (que está implícito en PlatyPar).

Cyoce
fuente