도전에 가까운 코드 : 정수의 합


39

이것은 간단한 과제입니다. 정수 시퀀스가 ​​주어지면 모든 정수의 합을 찾으십시오.

그러나 비틀기. 당신의 점수는 코드와 다음 문구 사이 의 레 벤슈 테인 거리입니다 (도전) :

정수 세트가 주어지면 모든 정수의 합을 찾으십시오.

입력에 개행이나 후행 공백이 없다고 가정 할 수 있습니다.

입력 / 출력 예 :

Input: 1 5 -6 2 4 5
Output: 11
Input: 1 -2 10
Output: 9

Levenshtein 거리에 대한 온라인 계산기는 여기에서 찾을 수 있습니다 : http://planetcalc.com/1721/


4
나는 도움이되지만 생각할 수 없다
JohnE

7
와우, 너무 많은 창의력 놈들 xD ... 기침 코멘트 학대자 기침

1
이것이 또 다른 도전이지만 동일한 레 벤슈 테인 거리 교장의 속편이 있어야한다고 생각하십니까? 이것이 속편인지 아닌지 확실하지 않습니다.

1
@NicoA 확실히! 유일한 문제는이 작업이 너무 쉽다는 것입니다.
Maltysen

2
@NicoA 그렇다면 허용되지 않는 것을 정의 할 때 매우주의하십시오. 예를 들어 많은 언어에서 원시 문자열을 띄울 수 있습니다.
xnor

답변:


58

파이썬, 거리 3

#Given a set of integers, find the 
sum#of all integers in it.

이는 내장 된 기능을 제공 sum, 같은 세트를 요약 할 수있는 sum({3,5,7})==17. 나머지 부분은 주석 처리됩니다. 거리는 3이며 편집은 3 회입니다.

  • 이니셜 추가 #
  • 개행 추가
  • 이후 공간 바꾸기 sum로를#

3
멋진 영어와 유사한 구문의 또 다른 유용한 기능
qwr

1
내 유일한 질문은 이것이 완전한 프로그램이 아니기 때문에 그것을 사용하는 방법이며, (이론적으로) 내장되어 있기 때문에 코드에 필요하지 않습니다.
Beta Decay

1
@BetaDecay 기본적으로 함수가 허용되고 함수 리터럴이 함수에 허용되는 규칙 때문에 작동 합니다 .
xnor

54

줄리아, 거리 27 26

코멘트가 없습니다!

Given(a)=(Set;of;integer; find; [sum(a),all,integer,in][1])

이것은 Given배열을 받아들이고 요소의 합을 반환 하는 함수를 생성합니다 . 많은 Julia 내장에 관련 이름이 있지만 여기에는 계산과 관련이 없으므로 세미콜론으로 구분 된 몇 가지를 나열 할 수 있습니다. 이들이 마지막으로 나열되지 않은 한 반환되지 않습니다. 마지막 부분은 실제로 합계와 세 함수를 포함하는 배열을 만들고 첫 번째 요소 인 합계를 선택합니다.


도전의 정신 안에는 더 이상의 의견이 없습니다. 잘 했어.
Christopher Wirt

@ChristopherWirt 감사합니다! :)
Alex A.

4
개선을 제안 할 수 있습니까? Given=(a;set;of=integer; find;th;[sum,of,all,integer, in][])- "Given"은 여전히 ​​동일하게 작동하지만 거리는 18입니다.
Glen O

22

APL 거리 6 (3)

3 거리를 저장했습니다 ...? Dennis에게 감사합니다!

+/⍝en a set of integers, find the sum of all integers in it.

주어진 배열 ( +/)을 합산합니다 . 문장의 나머지 부분은 주석 ( )을 사용하여 끝에 추가됩니다 .


1
당신은 필요하지 않습니다 {⍵}. +/이미 유효한 기능입니다.
데니스

@Dennis Awesome, 제안 주셔서 대단히 감사합니다!
Alex A.

10

골프 스크립트, 5

~{Given a set of integers+ find the sum of all integers in it}*

이것은 주석을 사용하지 않는 완전한 프로그램입니다 (그러나 많은 멍청이).

Web GolfScript 에서 온라인으로 사용해보십시오 .


9

거리, 거리 37 36 34

의견을 사용하지 않고 :)

 as.integer ( sum (scan(,integer( ) )))

참고 시작 부분에 공간이있다.


8

매스 매 티카, 거리 17

Given a set of integers find the sum of all integers in it*0+Total@Input[]

주석이나 홉을 사용하지 않고 모든 단어를 변수로 선언 한 다음 0을 곱하여 제거합니다.

또한 실제로 입력으로 정수 세트 를 취하는 유일한 대답이라는 이점이 있습니다.

입력 {1,2,3}6예상대로 출력 을 제공합니다 .

불행히도 Mathematica Sum함수는 문제의 작업을 수행하지 않으므로 더 많은 바이트가 필요합니다.


Given a set of integers find the sum of all *0+Total@Input[]거리 14
Leaky Nun

6

자바 -43 41

나는 노력했다.

float a_set_of(int[] r){return IntStream.of(r).sum()}//n it.
Given a set of integers, find the sum of all integers in it.

자바 : P.


하나의 편집 거리를 저장하기 위해 함수의 인수를 a에서 r로 변경할 수 있다고 생각합니다.
Element118

@ Element118 멋진 캐치. 또한 메소드 이름이 더 잘 표시되도록 리턴 유형을 변경했습니다.
Anubian Noob

2
스 니펫의 시작으로 "int a_"를 사용할 수 없습니까? (int 앞에 하나의 공백이 있고 뒤에 a_ 뒤에 2
개가 있음

6

RProgN , 거리 2.

Given aset of integers, ;find the sum of all integers in it.

RProgN에서 a, set, find 및 sum은 모두 명령입니다. 다른 모든 것은 기본적으로 구문에서 무시됩니다. a는 알파벳을 스택으로 푸시하여 합계가 실패하게합니다. Set에 충분한 인수가 없으므로 항상 실패하고 오류가 발생합니다. 잘못된 수의 인수를 찾거나 작동하지 않는 입력 스택과 알파벳을 비교하려고합니다.

a와 set은 둘 사이의 공백을 제거하여 '고정'될 수 있습니다. aset은 함수가 아니므로 무시됩니다. 찾기에는 추가 문자가 시작 부분에 삽입되어 인식되지 않고 무시됩니다. 합계 만 남으므로 입력 스택의 내용을 편리하게 합칩니다.

마지막으로 RProgN이 무언가를 이길 수 있습니다!

온라인으로 사용해보십시오!



4

MATLAB, 거리 29 28

Given_a_set_of_integers=@(findthe)sum(all(1)*findthe)

의견을 사용하지 않고 :-)

코드는 익명 함수 형태입니다. 입력이 숫자의 벡터 (1D 배열)라고 가정합니다.

예:

>> Given_a_set_of_integers=@(findthe)sum(all(1)*findthe)
Given_a_set_of_integers = 
    @(findthe)sum(all(1)*findthe)

>> Given_a_set_of_integers([1 5 -6 2 4 5])
ans =
    11

3

O , 5

M] + o "정수 세트를 받으면 그 안에있는 모든 정수의 합을 찾으십시오.

숫자는 16 진수 여야하고 역 음수 여야합니다.

  • -6 => 6_
  • -4 => 4_
  • -10 => A_

온라인으로 사용해보십시오


1
예 링크가 작동합니다!
Maltysen

좋은 데모! 그래도 IDE를 과잉 종류라고 부르지 않습니까?
kirbyfan64sos

@ kirbyfan64sos 완전히, 그러나 구문 강조 및 기타와 같은 기능을 추가하고 싶습니다. 지금은 통역사 일뿐입니다.

O esolangs 페이지에 대한 링크 가 더 유용 할 것이라고 생각합니다.
mbomb007

@ mbomb007 그러나 그것은 구식입니다. 거기에있는 것의 절반은 효과가 없으며, 그것은 문서화 된 언어의 일부일뿐입니다.
Phase

3

K, 60 5

+/ / Given a set of integers, find the sum of all integers in it.

나는 거리가 멀지 않은 거리에서 기호가 잘 어울리지 않는다고 생각합니다 ...

하하하 원래, 나는 없었다 아무 나는 60 그럼, 도움이 의견에 감사, 그것은 5로 떨어졌다 도착하도록 LeveXXX 거리가 무엇인지.


당신이 기호를 사용하는 것이 아니라, Levenshtein 거리는 # 추가, 삭제, 대체입니다. 원래 문자열에서 60 개의 삭제가 있습니다.
Maltysen

기호가 아니며 코드가 너무 짧아서 문구의 길이-코드의 길이는 60입니다.

2
"Levenshtein"의 정확한 철자를 얻기 위해 위로 스크롤 할 수 있다는 것을 알고 있습니까? ;)
Alex A.

@AlexA. 이 방법으로 더 재미 있어요. :)
kirbyfan64sos

2
나는 그를 비난하지 않습니다. 복사하여 붙여 넣기 전에 철자를 약 10 번 확인해야했습니다.

3

F #, 거리 21

let ``Given a set of integers, find the sum of all integers in it`` x = Seq.sum x

이중 틱을 사용하여 함수에 공백이있는 이름을 부여하는 기능이 마음에 듭니다.

용법:

[1;2;3] |> ``Given a set of integers, find the sum of all integers in it`` |> printfn "%i"

6


3

핍, 거리 3

사소한 코멘트가없는 클럽이지만 많은 회원이없는 golflang 답변에 가입하면 ...

Given a set of integers, find the sum of all integers in $+g

Pip 용 GitHub 리포지토리

코드는 실제로 문서화됩니다. 어쩌면 s/in/using/더 정확한 설명. 명령 행 인수로 제공된 정수는 list에 읽히고 g여기에 더하여 접 히고 결과가 자동 인쇄됩니다. 다른 모든 것들은 단지 변수이며, 그것은 ops-no입니다.

주요 기능을 참조하고 코드 블록의 범위를 취하는 것이 의미가 s, f없기 때문에 불평하지 않고 작동 한 처음에는 약간 놀랐습니다 f. 그러나 나는 ,범위 인수는 함수 인수가 주어지면 다른 함수를 구성합니다 (Pip의 많은 연산자처럼). 그래서 나는 s, f~로 평가된다고 생각 한다 {Given a set of integers, find the sum of all integers in " ",$+g}. (그런 다음 어쨌든 버려집니다.)

마지막 요점 :이 코드는 현재 버전의 Pip에서 작동 G하지만 아직 할당 되지 않았습니다. 향후 버전 G에서 이진 또는 삼항 연산자를 만드는 경우 거리 4 버전이 필요합니다. given대신에 사용하면 Given잘 작동합니다.


3

하스켈, 거리 11

코멘트가 없습니다!

const sum"Given a set of integers, find the sum of all integers in it."

용법:

> const sum"Given a set of integers, find the sum of all integers in it." $ [1..10]
55

3

큐빅스 , 거리 9

@ivOn a ;et I+ i?tegers, fu;d <he sum of all integers in it.

온라인으로 사용해보십시오!

이 입방체에 랩

      @ i v
      O n a
      ; e t
I + i ? t e g e r s , f
u ; d < h e s u m o f a
l l i n t e g e r s i n
      i t .
      . . .
      . . .

작동 코드는

  • I+i 정수를 입력하고 TOS에 추가 한 다음 문자를 입력하십시오
  • ?문자 값을 테스트하십시오. -1 (입력 끝)의 경우 왼쪽으로 리디렉션하거나 다른 항목의 경우 오른쪽으로 리디렉션합니다 (0은 입력 할 수 없음)
    • ;O@ 팝 TOS, 출력 합계 및 종료
    • <;u 리디렉션, TOS 팝 및 시작으로 u 턴


1

PHP4.1, 거리 25

이것은 꽤 길어서 실제로 늦습니다.

그러나 어쨌든 여기 있습니다 :

<?=$n_a_set_of_integers_fi=array_sum($f_all_integers_in_i);

이것이 작동하려면 키를 사용하여 POST / GET / COOKIE / session을 통해 배열을 전달하면됩니다 f_all_integers_in_i.


2
코멘트가 없습니다.
Anubian Noob


0

C ++ 17, 거리 44 29

Variadic Generic Lambda FTW

[](auto...t){return(t+...);}//the sum of all integers in it.

이전 솔루션

template<class...t>int s(t...l){return(...+l);}//gers in it.



0

, 4 점

&+#Given a set of integers, find the sum of all integers in it.

후행 줄 바꿈에 유의하십시오.

온라인으로 사용해보십시오!

코드는 매우 자명하다. &+Ly의 합산 연산자이며 #주석입니다. 주석 줄이있는 프로그램을 끝내면 Ly의 암시 적 출력을 "코멘트 아웃"하므로 실제로는 기능을 호출한다는 해석기의 버그입니다.


0

dc, 14

?[+z1 <f]d  sf xp#egers, find the sum of all integers in it.

코멘트:

?                   # read numbers
 [                  # start macro
  +                 # add up last two things on stack
   z1 <f            # if stack size is more than 1, execute macro at register 'f'
        ]           # end macro
         d          # dupe it
            sf      # saving one copy to register 'f'
               x    # and executing another
                p   # printing result

TIO

1을 입력하면 스택이 비어 있다고 불평하지만 여전히 작동하며 0을 제거하면 2 diff가 절약됩니다.


0

엑셀 VBA, 거리 : 11

[a:a]ActiveSheet 객체 의 범위 에서 입력 을 받아 VBE 즉시 창으로 출력하는 익명 VBE 즉시 창 기능

?[Sum(a:a)] 'f integers, find the sum of all integers in it.

0

브레인 플락 , 20

(([]){[{}]{}([])}{})ers, find the sum of all integers in it.

온라인으로 사용해보십시오!

설명

원본 텍스트에 괄호가 없으므로 Brain-Flak 의 문제로 요약됩니다 . 그러나 Brain-Flak의 답변은 거의 없으므로 여전히이 답변을 사소한 것은 아닙니다.

첫 번째 직관은 아마도 다음 코드 일 것입니다.

({{}})

어떤 작품 ... 하지 않는 경우 그것은 단지 금액에서 제로까지 스택에 제로가있다. 이 문제를 해결하려면 스택 높이를 사용하여 스택이 비어 있지 않은지 확인해야합니다. 이처럼 설정할 수 있습니다

([])    #{ Push stack height }
(       #{ Start Push }
{       #{ Loop until zero }
 <{}>   #{ Silently Pop the last height }
 {}     #{ Grab a value from the stack }
 <([])> #{ Silently push the stack height again }
}       #{ End loop }
{}      #{ Remove last stack height }
)       #{ Push the result }

이것은 효과가 있지만 문제가 있습니다. 루프에서 팝과 푸시를 계속 사용하지만 루프는 거의 동일하므로 취소 할 수있는 방법이 있어야합니다. 우리가 시도하면

([])({[{}]{}([])}{})

우리는 n매번 끝납니다 . 여기 트릭이 있습니다. 우리는 이미 n주위에 앉아 있습니다. 균형을 맞추기 위해 밀어 넣습니다.

(([]){[{}]{}([])}{})

1
그냥 당신을 축하하고 싶었 2^8일 ppcg 응답
테일러 스콧


0

젤리 , 거리 : 2

Given a set of integers, find the sum of all integers in it.
S

온라인으로 사용해보십시오!

Jelly는 기본 링크 (마지막 줄) 만 평가하고 명시 적 명령은 다른 링크 (다른 줄)를 실행합니다.

마지막 줄은 S입력 값을 합한입니다.

첫 번째 줄은 기본 링크에 참조가 없기 때문에 실행되지 않습니다.


0

스냅! 4.2.2.9 (+ 도구), 스크래치 블록 3 구문, 거리 35

이것은 기능입니다. integers, find the sum of all inte입력입니다.

for each(et)of(integers, find the sum of all inte
change[s v]by(et
end
report(s

이것은 어떻게 입력을 받습니까? 입력을 코드에 붙여 넣어야합니까? 일반적으로 우리는 이러한 종류의 입력을 허용하지 않지만 STDIN에서 입력을 받거나 제출이 함수 인 경우 인수로 전달되도록 요구합니다.
밀 마법사

아니요, 기능입니다. integers, find the sum of all inte인수입니다. 그것은 scratchblocks3 구문의 일반 변수와 구별되지 않습니다. 이것이 내가 명확히 한 이유입니다
Silas Reel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.