합 체인 시퀀스


16

순서:

  1. 우리는에서 시작 1합니다.
  2. 먼저 현재 1 인덱스 값을 시퀀스의 이전 숫자에 추가합니다.
  3. 그런 다음이 현재 값에 적용되는 경우 다음 수학 연산을 순서대로 적용합니다.
    • 로 나눌 수 2있습니까? => 추가
    • 로 나눌 수 있음 3 있습니까? => 빼기
    • 로 나눌 수 4있습니까? => (더하기 AND) 곱하기
    • 안도로 나누어 2, 34? -> 현재 합계 결과 계속

산출:

이 순서로 처음 100 개의 숫자를 출력하십시오.

1, 1, 21, 25, 30, 216, 223, 223, 2169, 2179, 2190, 2202, 2215, 2215, 2245, 2261, 2295, 2295, 2333, 2353, 2395, 2417, 56649, 56649, 56699, 56725, 1533033, 1533061, 1533090, 45993600, 45993631, 45993631, 1517792001, 1517792035, 1517792070, 1517792106, 1517792143, 1517792143, 1517792221, 1517792261, 1517792343, 1517792343, 1517792429, 1517792473, 1517792563, 1517792609, 71336257041, 71336257041, 71336257139, 71336257189, 3638149121841, 3638149121893, 3638149121946, 196460052588000, 196460052588055, 196460052588055, 11198222997525633, 11198222997525691, 11198222997525750, 11198222997525810, 11198222997525871, 11198222997525871, 11198222997525997, 11198222997526061, 11198222997526191, 11198222997526191, 11198222997526325, 11198222997526393, 11198222997526531, 11198222997526601, 795073832824398753, 795073832824398753, 795073832824398899, 795073832824398973, 59630537461829934225, 59630537461829934301, 59630537461829934378, 4651181922022734887568, 4651181922022734887647, 4651181922022734887647, 376745735683841525912529, 376745735683841525912611, 376745735683841525912694, 376745735683841525912778, 376745735683841525912863, 376745735683841525912863, 376745735683841525913037, 376745735683841525913125, 376745735683841525913303, 376745735683841525913303, 376745735683841525913485, 376745735683841525913577, 376745735683841525913763, 376745735683841525913857, 35790844889964944961834465, 35790844889964944961834465, 35790844889964944961834659, 35790844889964944961834757, 3543293644106529551221660545, 3543293644106529551221660645

다음은 시퀀스에서 처음 10 개의 숫자입니다.

// Starting number of the sequence:
1

// 1 (previous number in the sequence)
// + 2 (current index in 1-indexed sequence)
// = 3 -> 3 - 2 (3 is divisible by 3, so we subtract the current index 2)
// = 1
1

// 1 (previous number in the sequence)
// + 3 (current index in 1-indexed sequence)
// = 4 -> 4 + 3 (4 is divisible by 2, so we first add the current index 3)
// = 7 -> 7 * 3 (and 4 is also divisible by 4, so we then also multiply the current index 3)
// = 21
21

// 21 (previous number in the sequence)
// + 4 (current index in 1-indexed sequence)
// = 25 (25 is not divisible by 2, 3 nor 4)
25

// 25 (previous number in the sequence)
// + 5 (current index in 1-indexed sequence)
// = 30 -> 30 + 5 (30 is divisible by 2, so we first add the current index 5)
// = 35 -> 35 - 5 (and 30 is also divisible by 3, so we then also subtract the current index 5)
// = 30
30

// 30 (previous number in the sequence)
// + 6 (current index in 1-indexed sequence)
// = 36 -> 36 + 6 (36 is divisible by 2, so we first add the current index 6)
// = 42 -> 42 - 6 (and 36 is also divisible by 3, so we then also subtract the current index 6)
// = 36 -> 36 * 6 (and 36 is also divisible by 4, so we then also multiply the current index 6)
// = 216
216

// 216 (previous number in the sequence)
// + 7 (current index in 1-indexed sequence)
// = 223 (223 is not divisible by 2, 3 nor 4)
223

// 223 (previous number in the sequence)
// + 8 (current index in 1-indexed sequence)
// = 231 -> 231 - 8 (231 is divisible by 3, so we subtract the current index 8)
// = 223
223

// 223 (previous number in the sequence)
// + 9 (current index in 1-indexed sequence)
// = 232 -> 232 + 9 (232 is divisible by 2, so we first add the current index 9)
// = 241 -> 241 * 9 (and 232 is also divisible by 4, so we then also multiply the current index 9)
// = 2169
2169

// 2169 (previous number in the sequence)
// + 10 (current index in 1-indexed sequence)
// 2179 (2179 is not divisible by 2, 3 nor 4)
2179

도전 규칙 :

  • 귀하의 언어가 2 31 -1 보다 큰 것을 지원하지 않는 경우 , 최대 값까지 시퀀스를 계속할 수 있습니다.1,517,792,609 ).
  • 출력 형식은 유연합니다. 배열이나 목록, 공백, 쉼표 등으로 구분 된 문자열을 반환 할 수 있습니다.

일반 규칙:

  • 이것은 이므로 바이트 단위의 최단 답변이 이깁니다.
    코드 골프 언어가 코드 골프 언어 이외의 언어로 답변을 게시하지 못하게하지 마십시오. '모든'프로그래밍 언어에 대한 가능한 한 짧은 대답을 생각해보십시오.
  • 표준 규칙이 답변에 적용 되므로 STDIN / STDOUT, 적절한 매개 변수가있는 기능 / 방법, 전체 프로그램을 사용할 수 있습니다. 당신의 전화.
  • 기본 허점 은 금지되어 있습니다.
  • 가능하면 코드 테스트 링크를 추가하십시오.
  • 또한 필요한 경우 설명을 추가하십시오.

n 번째 값, 첫 번째 n 값 또는 최대 정수 크기까지 출력합니까?
Gabriel Benamy

@GabrielBenamy 시퀀스에서 처음 100 개.
Kevin Cruijssen

1
그 블록에 99 개의 숫자 만 있다고 확신합니다.
Kade

2
내 대답은 마지막 13 개의 숫자에 대한 출력에 동의하지 않습니다.
Gabriel Benamy

1
@Shebang Fixed .. 엉성한 시작에 대해 죄송합니다. 5 일 동안 샌드 박스에 있었지만 다른 사람도 눈치 채지 못했을 것 같습니다. : S 지금 정확해야합니다.
Kevin Cruijssen

답변:


1

05AB1E , 24 23 바이트

Kevin Crujissen 덕분에 -1 바이트

¼¾тF=¼¾+©…+-*v®NÌÖi¾y.V

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

설명:

¼¾                        # set the counter to 1, then push 1
  тF                      # repeat the following 100 times
    =                     # print the current number in the sequence
     ¼¾                   # increment the counter
       +                  # add it to the current number
        ©                 # save the result in the register
         …+-*v            # for each of '+', '-', and '*'...
              ®   i       # if the register...
                 Ö        # is divisible by...
               NÌ         # the loop index + 2...
                   ¾y.V   # then apply the current operation

1
카운터 변수로 더 짧은 것을 찾으려고 UX했지만 제거 할 수는 없었습니다. 대신 24 에서 시작하기 때문에 24 바이트에서도 끝납니다 . 나는 지금 전에 그것을 늘렸다. 그러나 우리는 대신에 시간 을 반복해야한다 . 아. 01101100
Kevin Cruijssen

@KevinCruijssen 예, 그건 UX눈에 띄는 것입니다. 나는 그것을 잠시 없애려고 노력했고 24와 25의 변형으로 끝났습니다. 1тF=NÌ©+DÑ3L>Ãv®…-*+yè.V, 1тL>v=y+©3F®NÌÖiy…+-*Nè.V... 카운터 변수 사용을 고려하지 않았습니다. 이것은 흥미 롭습니다.
Grimmy

1
@KevinCruijssen은 24에 영감을주었습니다 . тF대신을 사용하십시오 Ƶ0µ. 고마워요! (PS : 정말 1 바이트가 있어야합니다 ¼¾.)
Grimmy

아 좋아. 어떻게 든 뭔가를 찾은 것 같아요, 하하 ;) 그리고 그래, 단 한 번도 괜찮을 ¼¾것입니다. 비록 꽤 정직하지만, 나는 거의 그렇게 사용하지 않습니다. 내가 지금 가장 선호하는 단일 바이트 내장은 두 번째 ©®변수로 나타나지 않습니다. 아마도 ""다른 도전에서 언급했듯이 빈 문자열에서 시작했을 것 입니다.
Kevin Cruijssen

8

R, 85 82 79 76 72 70 바이트

for(i in 2:56)T[i]=((z=i+T[i-1])+i*(!z%%2)-i*(!z%%3))*`if`(z%%4,1,i);T

언 골프 :

s=1 ## formerly s=1:56, formerly s=1:100
for(i in 2:56){
    z=i+s[i-1]
    s[i]=(z+i*(z%%2<1)-i*(z%%3<1))*(1+(i-1)*(z%%4<1))
}
s

모듈러스를 확인하는 (!z%%3)대신 사용할 수 있으며 처음 사용할 때 발생 (z%%3<1)하는 정의에 대해서는 @rturnbull에게 감사드립니다 z.

벡터 확장을 남용하여 3-4자를 골라냅니다. 대답은 원래 시작 s=1:56...되었지만 그럴 필요는 없으며 길이는 s필요에 따라 확장됩니다.

마지막 조건을 "if"함수 호출로 대체하여 3 바이트를 더 절약 했습니다 (예, R의 올바른 함수입니다)

대체하여 4 개의 바이트를 저장 s하여 T내장 명령 인은 동일 TRUE할 수도 동일하다 1. @rturnbull과 동시에 그것을 깨달았습니다 (정직한!)

우리가 2 ^ 52를 초과하면 몇 가지 수치 문제가 발생하지만 그것에 대해 할 수있는 일은 없습니다 .- R은 double보다 큰 숫자에 대해서만 유형을 사용할 수 있습니다2^31-1 있지만 최대 2 ^ 52까지의 정수를 정확하게 저장합니다. 따라서 100 길이의 경우에 1 바이트를 절약하는 첫 번째 56 용어 ( "오른쪽"인 마지막 용어) 만 출력 할 수 있습니다.

다음은 56 길이 버전의 출력입니다.

    > for(i in 2:56){z=i+T[i-1];T[i]=(z+i*(!z%%2)-i*(!z%%3))*`if`(z%%4,1,i)};T
 [1]               1               1              21              25              30             216
 [7]             223             223            2169            2179            2190            2202
[13]            2215            2215            2245            2261            2295            2295
[19]            2333            2353            2395            2417           56649           56649
[25]           56699           56725         1533033         1533061         1533090        45993600
[31]        45993631        45993631      1517792001      1517792035      1517792070      1517792106
[37]      1517792143      1517792143      1517792221      1517792261      1517792343      1517792343
[43]      1517792429      1517792473      1517792563      1517792609     71336257041     71336257041
[49]     71336257139     71336257189   3638149121841   3638149121893   3638149121946 196460052588000
[55] 196460052588055 196460052588055

1
나는 도전에 대한 설명을 감안할 때 56까지만 루핑하는 것이 공정한 게임이라고 말합니다.
Billywob

@Billywob가 옳습니다. 설명에서 " 귀하의 언어가 2 ^ 31-1보다 큰 것을 지원하지 않는 경우 최대 값까지 (따라서-를 포함하여 처음 46 개의 숫자까지) 순서를 계속할 수 있습니다 1,517,792,609. " 과정은 32 비트와 다른 숫자에도 적용됩니다. R이 더 큰 것을 처리 할 수 ​​없으면 처음 56 개 숫자보다 완벽하게 처리됩니다. 당신이 56 이상으로 가지 않을 수 있습니다 알고있는 경우 그리고 그래, 당신은 변경 될 수 있습니다 100하는 56바이트를 저장합니다.
Kevin Cruijssen

1
당신은 변경하여 3 바이트를 저장할 수 z%%2<1에 (등) !z%%2암시 적 타입 변환을 남용.
rturnbull

@rturnbull에게 감사드립니다. 어떤 이유로 나는 !이길 수 없다고 생각 %%했지만 분명히 그렇게합니다!
JDL

2
T대신을 (를) 남용 하고 사용할 s수 있으므로를 제거하여 s=1;4 바이트를 더 절약 할 수 있습니다 . z다음과 같이 정의를 s[i]( T[i]정말로) 정의로 접을 T[i]=((z=i+T[i-1])+ ...수 있습니다. 이는 중괄호를 잃어 더 많은 바이트를 절약 할 수 있음을 의미합니다. 편집 : 아, 나는 T내 의견을 쓰는 동안 당신이 트릭을 한 것을 참조하십시오 ! 좋은 생각은 똑같이 생각한다고 그들은 말합니다.
rturnbull

5

파이썬 3, 82 78 76 74 72 바이트

i=s=1
exec('print(s);i+=1;s+=i;s=(s+i-i*(s%2+(s%3<1)))*i**(s%4<1);'*100)

산출:

1
1
21
25
30
216
223
223
2169
2179
2190
2202
2215
2215
2245
2261
2295
2295
2333
2353
2395
2417
56649
56649
56699
56725
1533033
1533061
1533090
45993600
45993631
45993631
1517792001
1517792035
1517792070
1517792106
1517792143
1517792143
1517792221
1517792261
1517792343
1517792343
1517792429
1517792473
1517792563
1517792609
71336257041
71336257041
71336257139
71336257189
3638149121841
3638149121893
3638149121946
196460052588000
196460052588055
196460052588055
11198222997525633
11198222997525691
11198222997525750
11198222997525810
11198222997525871
11198222997525871
11198222997525997
11198222997526061
11198222997526191
11198222997526191
11198222997526325
11198222997526393
11198222997526531
11198222997526601
795073832824398753
795073832824398753
795073832824398899
795073832824398973
59630537461829934225
59630537461829934301
59630537461829934378
4651181922022734887568
4651181922022734887647
4651181922022734887647
376745735683841525912529
376745735683841525912611
376745735683841525912694
376745735683841525912778
376745735683841525912863
376745735683841525912863
376745735683841525913037
376745735683841525913125
376745735683841525913303
376745735683841525913303
376745735683841525913485
376745735683841525913577
376745735683841525913763
376745735683841525913857
35790844889964944961834465
35790844889964944961834465
35790844889964944961834659
35790844889964944961834757
3543293644106529551221660545
3543293644106529551221660645

제안은 환영합니다!



4

05AB1E , 34 31 30 바이트

XTnFD,NÌ©+D3L>%_`X®‚sèrŠs-®*+*

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

설명

X                               # initialize stack with 1
 TnF                            # for N in [0 ... 99]
    D,                          # print a copy of top of stack
      NÌ©                       # increase index N by 2 and store in register
         +                      # add this to current value
          D                     # make a copy of the current value
           3L>                  # push the list [2,3,4]
              %                 # take current value mod elements in list
               _                # invert this
                `               # push the elements from the list to stack
                 X®‚sè          # index into list [1,N+2] with the result of mod 4
                      rŠs-      # subtract result of mod 3 from result of mod 2
                          ®*    # multiply by N+2
                            +   # add this to current value
                             *  # multiply current value with the result from index operation

3

파이썬 2, 76 바이트

꽤 표준 구현, while 루프 대신 exec 문을 사용하여 2 바이트 정도 절약했다고 ​​생각합니다. 재귀 적 방법이 더 짧을 수도 있습니다 .xnor이 곧 나타날 것입니다.)

n=1
f=1
exec'print f;n+=1;d=f+n;f=(d+n*(d%2<1)-n*(d%3<1))*[1,n][d%4<1];'*100

TheNumberOne이 알아 낸 업데이트를 사용하면 69 바이트가되지만 복사가됩니다.

n=f=1;exec'print f;n+=1;d=f+n;f=(d+n-n*(d%2+(d%3<1))*n**(d%4<1);'*100

산출:

1
1
21
25
30
216
223
223
2169
2179
2190
2202
2215
2215
2245
2261
2295
2295
2333
2353
2395
2417
56649
56649
56699
56725
1533033
1533061
1533090
45993600
45993631
45993631
1517792001
1517792035
1517792070
1517792106
1517792143
1517792143
1517792221
1517792261
1517792343
1517792343
1517792429
1517792473
1517792563
1517792609
71336257041
71336257041
71336257139
71336257189
3638149121841
3638149121893
3638149121946
196460052588000
196460052588055
196460052588055
11198222997525633
11198222997525691
11198222997525750
11198222997525810
11198222997525871
11198222997525871
11198222997525997
11198222997526061
11198222997526191
11198222997526191
11198222997526325
11198222997526393
11198222997526531
11198222997526601
795073832824398753
795073832824398753
795073832824398899
795073832824398973
59630537461829934225
59630537461829934301
59630537461829934378
4651181922022734887568
4651181922022734887647
4651181922022734887647
376745735683841525912529
376745735683841525912611
376745735683841525912694
376745735683841525912778
376745735683841525912863
376745735683841525912863
376745735683841525913037
376745735683841525913125
376745735683841525913303
376745735683841525913303
376745735683841525913485
376745735683841525913577
376745735683841525913763
376745735683841525913857
35790844889964944961834465
35790844889964944961834465
35790844889964944961834659
35790844889964944961834757
3543293644106529551221660545
3543293644106529551221660645

3

자바 스크립트, 75 63 바이트

for(n=p=0;n++<57;alert(p=p%4?q:q*n))q=(p+=n)%2?p:p+n,q-=p%3?0:n

다른 버전 :

for(n=p=0;n++<57;)alert(p=((p+=n)+(!(p%2)-!(p%3))*n)*(p%4?1:n))

출력이 자바 스크립트의 안전 숫자의 크기 (2 능가하는 때이기 때문에 인덱스 57에서 두 스톱 (0 인덱스) (53) 1 -). ES6에서도 루프가 재귀 함수보다 훨씬 짧습니다.

f=(n=0,p=0)=>n++>56?[]:(q=(p+=n)%2?p:p+n,q-=p%3?0:n,[q*=p%4?1:n,...f(n,q)])

이것은 처음 57 개 요소의 배열을 반환합니다.


Number.MAX_SAFE_INTEGER를 초과하면 부서가 잘못되기 때문에 ~ 50-60을 초과하지 않아야한다고 생각합니다. 나는 또한 map완전성을 위해 버전을 시험해 보았고 너무 75 바이트로 클럭되었습니다.
Neil

@ 닐 아, 고마워 정확히 말하면 57 개 항목 이후 Number.MAX_SAFE_INTEGER를 능가합니다.
ETHproductions

3

뇌 - 플랙 476 466 462 456 446 바이트

Wheat Wizard 덕분에 6 바이트 절약

(((((((())<>()(())()){}){}){}())){}{}){({}[()]<(((({})<>({}())<>))<({}(()())(<()>)){({}[()]<(({}()[({})])){{}(<({}({}))>)}{}>)}({}{}<{}(())>){((<{}{}>))}{}{(<{}({}<>({})<>)>)}{}>)(({})<({}(()()())(<()>)){({}[()]<(({}()[({})])){{}(<({}({}))>)}{}>)}({}{}<{}(())>){((<{}{}>))}{}{(<{}({}<>[({})]<>)>)}{}>)({}(()()()())(<()>)){({}[()]<(({}()[({})])){{}(<({}({}))>)}{}>)}({}{}<{}(())>){((<{}{}>))}{}{(<{}(<>({}))({<({}[()])><>({})<>}{}<><{}>)>)}{}>)}{}

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

정말 느립니다. TIO는 전체 100 개의 숫자를 처리 할 수 ​​없습니다 (한도는 22 또는 23으로 나타남). 따라서이 예제는 처음 20 개만 생성하지만 코드도 100으로 작동합니다.

간단한 설명 :

      (())<>                           # push a 1 (the index) and switch stacks 
            (())                       # then push a 1 (the starting number)
((((((          ()()){}){}){}())){}{}) # and a 99 (a counter so that we only print the 
                                       # first 100 numbers)

# repeat until the counter is 0
{
  # pop the counter and push it minus 1 after:
  ({}[()]<
    # hold onto the current number plus the index (leave a copy on the stack to be printed)
    # and increment the index
    (((({})<>({}())<>))<
      # push logical not of (current mod 2)
      ({}(()())(<()>)){({}[()]<(({}()[({})])){{}(<({}({}))>)}{}>)}({}{}<{}(())>){((<{}{}>))}{}
      # if !(current mod 2) is 1, add the index
      {(<{}({}<>({})<>)>)}{}
    # push the current number back on
    >)
    # hold onto the current number
    (({})<
     # push logical not of (current mod 3)
     ({}(()()())(<()>)){({}[()]<(({}()[({})])){{}(<({}({}))>)}{}>)}({}{}<{}(())>){((<{}{}>))}{}
     # if !(current mod 3) is 1, then subtract the index
     {(<{}({}<>[({})]<>)>)}{}
    # push the current number back on
    >)
    # push logical not of (current mod 4)
    ({}(()()()())(<()>)){({}[()]<(({}()[({})])){{}(<({}({}))>)}{}>)}({}{}<{}(())>){((<{}{}>))}{}
    # if !(current mod 4) is 1, multiply by the index
    {(<{}(<>({}))({<({}[()])><>({})<>}{}<><{}>)>)}{}
  # put the counter back on
  >)
# loop until done
}
# pop the counter
{}

({}<>[({})]<>)(<()>)다음으로 대체 가능(<({}<>[({})]<>)>)
Post Rock Garf Hunter

@WheatWizard가 업데이트되었습니다. 감사!
Riley

1

자바 7, 316 바이트

import java.math.*;String c(){String r="";BigInteger t=BigInteger.ONE,x,p;for(int i=2;i<102;){r+=t+" ";p=(t=t.add(x=new BigInteger(i+++"")));t=x(p,2)?t.add(x):t;t=x(p,3)?t.subtract(x):t;t=x(p,4)?t.multiply(x):t;}return r;}boolean x(BigInteger p,int i){return p.mod(new BigInteger(i+"")).compareTo(BigInteger.ONE)<0;}

언 골프 및 테스트 코드 :

여기에서 시도하십시오.

import java.math.*;
class M{
  static String c(){
    String r = "";
    BigInteger t = BigInteger.ONE,
               x,
               p;
    for(int i = 2; i < 102;){
      r += t+" ";
      p = (t = t.add(x = new BigInteger(i++ + "")));
      t = x(p, 2)
           ? t.add(x)
           : t;
      t = x(p, 3)
           ? t.subtract(x)
           : t;
      t = x(p, 4)
           ? t.multiply(x)
           : t;
    }
    return r;
  }

  public static void main(String[] a){
    System.out.println(c());
  }

  static boolean x(BigInteger p, int i){
    return p.mod(new BigInteger(i+"")).compareTo(BigInteger.ONE) < 0;
  }
}

산출:

1 1 21 25 30 216 223 223 2169 2179 2190 2202 2215 2215 2245 2261 2295 2295 2333 2353 2395 2417 56649 56649 56699 56725 1533033 1533061 1533090 45993600 45993631 45993631 1517792001 1517792035 1517792070 1517792106 1517792143 1517792143 1517792221 1517792261 1517792343 1517792343 1517792429 1517792473 1517792563 1517792609 71336257041 3424140340272 3424140340321 3424140340371 3424140340473 3424140340525 3424140340631 3424140340631 3424140340741 3424140340797 3424140340911 3424140340969 202024280124133 202024280124193 202024280124315 202024280124377 12727529647843689 814561897462000192 52946523335030016705 52946523335030016771 52946523335030016905 52946523335030016973 52946523335030017111 52946523335030017111 52946523335030017253 52946523335030017253 52946523335030017399 52946523335030017473 3970989250127251321725 301795183009671100456876 301795183009671100456953 301795183009671100457031 301795183009671100457110 301795183009671100457270 301795183009671100457351 301795183009671100457433 25049000189802701337980717 25049000189802701337980801 25049000189802701337980971 25049000189802701337981057 2179263016512835016404367097 191775145453129481443584312280 17067987945328523848479003800841 1536118915079567146363110342083790 1536118915079567146363110342083790 1536118915079567146363110342083974 1536118915079567146363110342083974 144395178017479311758132372155911228 13717541911660534617022575354811575685 13717541911660534617022575354811575781 13717541911660534617022575354811575975 13717541911660534617022575354811576073 1358036649254392927085234960126346050829 

1

C #, 120 바이트

제정신이없는 사람이 Java에서 골프를하지 않는 것처럼, 제정신이있는 사람은 C #에서 골프를해서는 안됩니다! 하지만 나사를 조이면 내가 할 수있는 일을보고 싶었습니다. 1M캐스트는 f나를 작성하지 않고도이 답변에 충분한 정밀도를 가진 소수를 할 수decimal . 또한 in-place 증가는 파이썬 응답에 약간의 바이트를 절약합니다. 결국 여전히 50 바이트 더 길다.

void k(){int n=1;var f=1M;while(n<101){Console.WriteLine(f);var d=++n+f;f=(d+n*((d%2<1?1:0)-(d%3<1?1:0)))*(d%4<1?n:1);}}

보다 읽기 쉽고 실행 가능한 버전은 다음과 같습니다.

using System;
class P
{
    static void Main(string[]a) 
    {
        int n = 1;
        var f = 1M;
        while (n < 101) 
        {
            Console.WriteLine(f);
            var d = ++n + f;
            f = (d + n * ((d % 2 < 1 ? 1 : 0) - (d % 3 < 1 ? 1 : 0))) * (d % 4 < 1 ? n : 1);
        }
        Console.Read();
    }
}

당신은을 변경하여 골프 1 바이트 수 whilefor:이 같은 INT 삽입for(int n=1;n<101;)
케빈 Cruijssen

당신은 심지어 다음과 같이 더 골프 수 있습니다 : void k(){for(decimal f=1,d,n=1;n<101;)Console.WriteLine(f=((d=++n+f)+n*((d%2<1?1:0)-(d%3<1?1:0)))*(d%4<1?n:1));}( 112 바이트 )
Kevin Cruijssen

1

배치, 110 바이트

@set n=0
@for /l %%i in (1,1,46)do @set/an=((n+=%%i)+(!(n%%2)-!(n%%3))*%%i)*(~-%%i*!(n%%4)+1)&call echo %%n%%

@ETHproductions의 공식을 사용하지만 Batch에는이 없기 때문에 약간 조정되었습니다 ?:. 배치는 32 비트 부호있는 정수를 사용하므로 루프는 46에서 정지합니다.


1

펄, 75 바이트

use bigint;$a+=$_,say$a=($a+($a%2?0:$_)-($a%3?0:$_))*($a%4?1:$_)for(1..100)

이 코드는 각 값을 새 줄에 출력하고 100 개의 값을 모두 계산합니다.


-Mbigint의 주위에 괄호를 1..100하고, !($a%2)*$_대신 ($a%2?0:$_)(에 대한 동일 a%3..) 몇 바이트를 저장해서는 안)
다다

이러한 제안과 몇 가지 다른 마사지 로 60 바이트 로 줄입니다.
Xcali

1

하스켈, 70 64 바이트

a%b=0^mod a b
n#i|s<-n+i=(s+s%2*i-s%3*i)*i^s%4
scanl1(#)[1..100]

scanl1(#)[1..100]처음 100 개의 요소가있는 목록을 반환합니다. 2 ^ 31 범위 (-> [1..46])에 머물 수 있으면 1 바이트가 적습니다 .

scanl1비슷 foldl1하지만 목록의 중간 결과를 수집합니다. 나누기 테스트는 나누기 가능 여부 %를 반환 하는 도우미 함수 를 통해 수행됩니다 .0^0 = 10^x = 0


1

J, 46 바이트

(,{:((]^0=4|+)*(]*0=2|+)++-]*0=3|+)1+#)^:99]1x

챌린지에 설명 된 방법을 적용합니다.

용법

추가 명령 (,.~#\)은 각 값에 색인을 추가하는 데 사용됩니다.

   (,.~#\) (,{:((]^0=4|+)*(]*0=2|+)++-]*0=3|+)1+#)^:99]1x
  1                            1
  2                            1
  3                           21
  4                           25
  5                           30
  6                          216
  7                          223
  8                          223
  9                         2169
 10                         2179
 11                         2190
 12                         2202
 13                         2215
 14                         2215
 15                         2245
 16                         2261
 17                         2295
 18                         2295
 19                         2333
 20                         2353
 21                         2395
 22                         2417
 23                        56649
 24                        56649
 25                        56699
 26                        56725
 27                      1533033
 28                      1533061
 29                      1533090
 30                     45993600
 31                     45993631
 32                     45993631
 33                   1517792001
 34                   1517792035
 35                   1517792070
 36                   1517792106
 37                   1517792143
 38                   1517792143
 39                   1517792221
 40                   1517792261
 41                   1517792343
 42                   1517792343
 43                   1517792429
 44                   1517792473
 45                   1517792563
 46                   1517792609
 47                  71336257041
 48                  71336257041
 49                  71336257139
 50                  71336257189
 51                3638149121841
 52                3638149121893
 53                3638149121946
 54              196460052588000
 55              196460052588055
 56              196460052588055
 57            11198222997525633
 58            11198222997525691
 59            11198222997525750
 60            11198222997525810
 61            11198222997525871
 62            11198222997525871
 63            11198222997525997
 64            11198222997526061
 65            11198222997526191
 66            11198222997526191
 67            11198222997526325
 68            11198222997526393
 69            11198222997526531
 70            11198222997526601
 71           795073832824398753
 72           795073832824398753
 73           795073832824398899
 74           795073832824398973
 75         59630537461829934225
 76         59630537461829934301
 77         59630537461829934378
 78       4651181922022734887568
 79       4651181922022734887647
 80       4651181922022734887647
 81     376745735683841525912529
 82     376745735683841525912611
 83     376745735683841525912694
 84     376745735683841525912778
 85     376745735683841525912863
 86     376745735683841525912863
 87     376745735683841525913037
 88     376745735683841525913125
 89     376745735683841525913303
 90     376745735683841525913303
 91     376745735683841525913485
 92     376745735683841525913577
 93     376745735683841525913763
 94     376745735683841525913857
 95   35790844889964944961834465
 96   35790844889964944961834465
 97   35790844889964944961834659
 98   35790844889964944961834757
 99 3543293644106529551221660545
100 3543293644106529551221660645

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.