N số đầu tiên không có chữ số nhị phân bằng nhau liên tiếp


32

Chuỗi chứa biểu diễn thập phân của các số nhị phân có dạng : 10101..., trong đó số hạng thứ n có n bit.

Trình tự có lẽ dễ giải thích nhất bằng cách chỉ hiển thị các mối quan hệ giữa biểu diễn nhị phân và thập phân của các số:

0       ->  0
1       ->  1
10      ->  2
101     ->  5
1010    ->  10
10101   ->  21
101010  ->  42

Thử thách:

Lấy một số nguyên đầu vào nvà trả về n số đầu tiên trong chuỗi. Bạn có thể chọn để có chuỗi 0-index hoặc 1-index.

Các trường hợp thử nghiệm:

n = 1   <- 1-indexed
0

n = 18
0, 1, 2, 5, 10, 21, 42, 85, 170, 341, 682, 1365, 2730, 5461, 10922, 21845, 43690, 87381

Giải thích được khuyến khích, như mọi khi.

Đây là OEIS A000975 .


Đưa ra giải pháp MATL của riêng bạn, có thể chấp nhận đầu ra kết quả theo thứ tự ngược lại không?
Xù xì

Có, miễn là nó được sắp xếp. @Shaggy
Stewie Griffin

Đẩy vận may của tôi đến đây, nhưng định dạng đầu ra này có được chấp nhận [85,[42,[21,[10,[5,[2,[1,0]]]]]]]không?
Xù xì

Câu trả lời:


66

Python 2 , 36 byte

lambda n:[2**i*2/3for i in range(n)]

Hãy thử trực tuyến! Giải thích: Biểu diễn nhị phân của là đơn giản để nhân nó với công suất thích hợp là 2 và lấy phần nguyên.230.101010101...


1
Thật tệ, đó là tháng 1 năm 2018, nếu không tôi đã đề cử nó cho cái nhìn sâu sắc nhất về toán học cho giải nhất của PPCG 2017 . Hy vọng tôi vẫn còn nhớ nó vào đầu năm 2019 .; p
Kevin Cruijssen

@KevinCruijssen đây là thứ tốt nhất tôi từng thấy trong số tất cả codegolf.stackexchange.com/a/51574/17360
qwr

3
@KevinCruijssen đừng quên!
Bassdrop Cumberwubwubwub

2
@BassdropCumberwubwubwub Cảm ơn bạn đã nhắc nhở, vì tôi thực sự đã quên nó hoàn toàn! Nó đã được thêm vào các đề cử.
Kevin Cruijssen


9

Jelly , ... 4 byte

Cảm ơn dặm cho -1 byte!

ḶḂḄƤ

Hãy thử trực tuyến!

Giải trình:

owered range, or Unength. Get [0, 1, 2, 3, ..., n-1]
 Ḃ    it. Get the last bit of each number. [0, 1, 0, 1, ...]
   Ƥ  for each Ƥrefixes [0], [0, 1], [0, 1, 0], [0, 1, 0, 1], ...
  Ḅ   convert it from inary to integer.

Thạch , 4 byte

Phiên bản của Jonathan Allan.

Ḷ€ḂḄ

Hãy thử trực tuyến!

owered range, or Unength.
 €    Apply for each. Automatically convert the number n
      to the range [1,2,..,n]. Get [[0],[0,1],[0,1,2],..].
  Ḃ   it. Get the last bit from each number.
      Current value: [[0],[0,1],[0,1,0],..]
   Ḅ  Convert each list from inary to integer.

Một phiên bản dựa trên thủ thuật 2/3 của Neil cho 5 byte, xem lịch sử sửa đổi.


ḶḂḄƤprefix nhanh chóng được đưa ra cho việc này
dặm

Không cần tiền tố nhanh chóng - Ḷ€ḂḄcũng sẽ hoạt động.
Jonathan Allan

5

MATL , 5 byte

:WI/k

Dựa trên câu trả lời của Neil .

Giải trình

:       % Implicit input, n. Push range [1 2 ... n]
W       % 2 raised to that, element-wise. Gives [2 4 ...2^n] 
I       % Push 3
/       % Divide, element-wise
k       % Round down, element-wise. Implicit display

Hãy thử trực tuyến!


MATL , 9 byte

:q"@:oXBs

Hãy thử trực tuyến!

Giải trình

:       % Implicit input n. Range [1 2 ... n]
q       % Subtract 1, element-wise: gives [0 1 ... n-1]
"       % For each k in [0 1 ... n-1]
  @     %   Push k
  :     %   Range [1 2 ... k]
  o     %   Modulo 2, element-wise: gives [1 0 1 ...]
  XB    %   Convert from binary to decimal
  s     %   Sum. This is needed for k=0, to transform the empty array into 0
        % Implicit end. Implicit display

5

Python 2 , 45 37 36 byte

-3 byte nhờ vào user202729
-1 byte nhờ mathmandan

s=0
exec"print s;s+=s+~s%2;"*input()

Hãy thử trực tuyến!


Nhân đôi scũng giống như thêm svào chính nó, vì vậy tôi tin rằng bạn có thể làm s+=s+~s%2để tiết kiệm một byte.
mathmandan

5

Python 3, 68 61 54 48 43 byte

c=lambda x,r=0:x and[r]+c(x-1,2*r+~r%2)or[]  

Cảm ơn user202729 vì đã giúp lưu 19 byte và ovs để giúp lưu 6 byte.

Dùng thử trực tuyến


Cảm ơn vì -1 byte đó. Và tôi nghĩ rằng tôi không thể thay thế nếu khác bằng và?
Manish Kundu

Được rồi xong rồi.
Manish Kundu

2
x == 0tương đương với not xif xlà một số nguyên, trao đổi toán hạng (nghĩa là x if c else y= y if not c else x) sẽ tiết kiệm thêm một số byte.
dùng202729

Bạn cũng có thể thả i%2và sử dụng 1-r%2thay thế
Rod

1
Sau đó, bạn không cần phải theo dõi i.
dùng202729

4

Husk , 7 byte

mḋḣ↑Θݬ

Hãy thử trực tuyến!

Dựa trên 1, vì vậy đầu vào n cho kết quả n đầu tiên .

Giải trình

     ݬ   The infinite list [1, 0, 1, 0, 1, ...]
    Θ     Prepend a zero.
   ↑      Take the first n elements.
  ḣ       Get the prefixes of that list.
mḋ        Interpret each prefix as base 2.

4

APL (Dyalog Unicode) , 11 byte SBCS

Giả sử ⎕IO( I ndex O rigin) 0là mặc định trên nhiều hệ thống. Chức năng tiền tố ẩn danh. 1 chỉ mục.

(2⊥⍴∘1 0)¨⍳

Hãy thử trực tuyến!

số 0 0 n n 1

(...  áp dụng các chức năng ngầm sau đây để mỗi

⍴∘1 0 định kỳ định hình lại danh sách [1,0]theo chiều dài đó

2⊥ chuyển đổi từ cơ sở 2 (nhị phân) sang số bình thường


4

Perlv5.10 -n , 24 + 1 byte

-3 byte nhờ Nahuel Fouilleul !

say$v=$v*2|$|--while$_--

Hãy thử trực tuyến!

Logic tương tự như phiên bản Ruby của tôi, nhưng ngắn hơn vì perl ngắn gọn hơn. Vì một số lý do kỳ lạ, printsẽ không làm một người tách biệt (chết tiệt!), Vì vậy tôi đã phải sử dụng saytừ v5.10;này để chạy, tôi không chắc làm thế nào để ghi điểm này, vì vậy tôi sẽ bỏ nó ngay bây giờ?. ..

Giải trình

say    # Like shouting, but milder.
  $v = $v*2 | $|-- # Next element is this element times 2 bitwise-OR
                   # with alternating 0 1 0 1..., so 0b0, 0b1, 0b10, 0b101...
                   # $. is OUTPUT_AUTOFLUSH, which is initially 0 and
                   #   setting all non-zero values seem to be treated as 1
  while $_-- # do for [input] times

để tính điểm tôi sẽ nói: 27 + 1 ( -n) = 28 byte, vì để chạy một lớp lót perl, người ta nên sử dụng -evà để sử dụng 5.10, bạn chỉ cần sử dụng -E, có cùng độ dài
Nahuel Fouilleul

có thể tiết kiệm 3 byte bằng cách sử dụng $|--thay vì($.^=1)
Nahuel Fouilleul



4

C , 81 55 59 byte

1 chỉ mục.

i,j;f(c){for(i=j=0;i<c;)printf("%d ",i++&1?j+=j+1:(j+=j));}

Chương trình đầy đủ, ít chơi gôn:

i;j;main(c,v)char**v;{c=atoi(*++v);for(;i<c;i++)printf("%d ",i&1?j+=j+1:(j+=j));}

Hãy thử trực tuyến!

EDIT 2: Tôi đã giả định rằng các chức năng không cần phải sử dụng lại bây giờ khi tôi nghĩ về nó, nó hoàn toàn có ý nghĩa rằng chúng sẽ phải được tái sử dụng: P

EDIT: Tôi đã có quan niệm sai lầm rằng tôi phải đưa toàn bộ chương trình vào câu trả lời, hóa ra tôi chỉ cần chức năng thực hiện nó. Điều đó thật tuyệt.

Tôi chắc chắn rằng tôi có thể cạo một vài byte ở đây và ở đó. Tôi đã sử dụng một vài thủ thuật. Một phần lớn của chương trình được dành riêng để lấy đối số và biến nó thành một int. Đây là mã golf đầu tiên của tôi. Nếu tôi làm bất cứ điều gì sai hãy nói với tôi: P


2
Chào mừng đến với PPCG! :) Tôi không phải là người C nhưng bạn có thể lượm lặt được một số gợi ý từ giải pháp của Steadybox .
Xù xì

Ok điều đó có ý nghĩa hơn bây giờ, tôi đã bao gồm toàn bộ chương trình khi tất cả những gì tôi cần là một chức năng và phần còn lại có thể được thực hiện trong phần chân trang. Tôi đoán điều này có thể được cải thiện đáng kể sau đó.
Khai thác

Chào mừng đến với PPCG! Bạn có thể lưu một byte bằng cách loại bỏ i++và thay đổi i&1thành i++&1. Ngoài ra, mặc dù là các biến toàn cục ijđược khởi tạo về 0 ban đầu, chúng cần được khởi tạo bên trong hàm, bởi vì đệ trình hàm phải được sử dụng lại .
Steadybox

1
Thậm chí tốt hơn, có thể lưu thêm 2 byte, loại bỏ hoàn toàn ternary.
dùng202729

2
50 byte: i,j;f(c){for(i=j=0;i<c;)printf("%d ",j+=j+i++%2);} Hãy thử trực tuyến!
Steadybox

4

Haskell , 47 40 53 49 44 40 34 byte

-4 byte nhờ người dùng202729
-6 byte nhờ Laikoni

(`take`l)
l=0:[2*a+1-a`mod`2|a<-l]

Hãy thử trực tuyến!


Bạn có thể thay thế otherwisebằng eg 1>0( otherwise == True)
flawr

Để chơi gôn nhiều hơn, bạn có thể sử dụng người bảo vệ để chỉ định một cái gì đó, ví dụ như thế này: Hãy thử trực tuyến!
flawr

1
Tái bút : Ngoài ra, hãy kiểm tra các mẹo chơi golf trong haskell cũng như phòng chat haskell của các đơn vị và nam giới .
flawr

1
Bạn cần tạo một hàm trả về n phần tử đầu tiên của danh sách trong đó n là đối số.
hoàn toàn là

1
Đúng chính xác. Tôi có thể khuyên bạn nên xem Hướng dẫn về Quy tắc chơi gôn của chúng tôi ở Haskell , nơi cố gắng nắm bắt sự đồng thuận hiện tại về những gì được phép và những gì không được phép.
Laikoni

4

Ruby , 26 byte

->n{(1..n).map{|i|2**i/3}}

Hãy thử trực tuyến!

Đánh bại tất cả các câu trả lời ruby ​​cũ.

Giải trình

1/3trong hình nhị phân trông giống như 0.01010101...vậy, vì vậy nếu bạn nhân nó với lũy thừa của hai, bạn sẽ nhận được:

n| 2^n/3
-+---------
1|0.1010101...
2|01.010101...
3|010.10101...
4|0101.0101...
5|01010.101...
6|010101.01...

Nhưng Ruby xếp các số trên phép chia int, cho tôi chuỗi tôi cần.


4

J , 9 byte

[:#.\2|i.

Làm thế nào nó hoạt động?

i. - danh sách 0..n-1

2| - danh sách các mục mod 2

\ - tất cả các tiền tố

#. - đến số thập phân

[: - mũ ngã ba (như tôi có số chẵn (4) động từ)

Hãy thử trực tuyến!


3

Võng mạc , 28 byte

)K`0
"$+"+¶<`.+
$.(*__2*$-1*

Hãy thử trực tuyến!

Dựa trên 0, vì vậy đầu vào n cho kết quả n + 1 đầu tiên .

Giải trình

Sử dụng đệ quy từ OEIS:

a(n) = a(n-1) + 2*a(n-2) + 1

Hãy cùng xem qua chương trình:

)K`0

Đây là một giai đoạn không đổi: nó loại bỏ đầu vào và đặt chuỗi làm việc thành 0, giá trị ban đầu của chuỗi. Các )kết thúc giai đoạn này trong một nhóm. Bản thân nhóm đó không làm gì, nhưng hầu như mọi giai đoạn (bao gồm cả giai đoạn nhóm) đều ghi lại kết quả của nó trong nhật ký và chúng tôi sẽ cần hai bản sao của 0nhật ký đó để chương trình hoạt động.

"$+"+¶<`.+
$.(*__2*$-1*

Có một loạt các cấu hình ở đây: "$+"+kết thúc giai đoạn trong một vòng lặp. Cái "$+"được coi là sự thay thế và $+đề cập đến đầu vào của chương trình, tức là n . Điều này có nghĩa là vòng lặp được chạy n lần.

Sau đó ¶<kết thúc mỗi lần lặp trong một giai đoạn đầu ra, trong đó in đầu vào của giai đoạn bằng một dòng cấp dữ liệu (do đó, lần lặp đầu tiên in số 0, lần lặp thứ hai in kết quả của lần lặp đầu tiên, v.v.).

Giai đoạn tự thay thế toàn bộ chuỗi làm việc bằng sự thay thế trên dòng cuối cùng. Cái đó sử dụng dấu ngoặc đơn đóng và ẩn đối số cho toán tử lặp lại *, vì vậy nó thực sự là viết tắt của:

$.($&*__2*$-1*_)

Những thứ bên trong dấu ngoặc đơn có thể được chia thành ba phần:

  • $&*_: đưa ra một chuỗi gồm một (n-1) _ s.
  • _: đưa ra một _.
  • 2*$-1*_: đưa ra một chuỗi 2 * a (n-1) _ . Đề $-1cập đến kết quả áp chót trong nhật ký kết quả, tức là vòng lặp trước lần cuối. Đó là lý do tại sao chúng ta cần bắt đầu sao chép số 0 trên nhật ký, nếu không, điều này sẽ đề cập đến đầu vào của chương trình trong lần lặp đầu tiên.

Sau đó $.(…)đo chiều dài của chuỗi kết quả. Nói cách khác, chúng tôi đã tính toán a(n) = a(n-1) + 1 + 2*a(n-2)bằng cách đi qua unary (không thực sự: $.(…)lười biếng và không thực sự đánh giá nội dung của nó nếu nó có thể xác định độ dài kết quả trực tiếp thông qua số học, do đó, điều này thậm chí khá hiệu quả).

Kết quả của lần lặp vòng lặp cuối cùng ( phần tử thứ n + 1 của chuỗi) được in do đầu ra ẩn của Retina ở cuối chương trình.


3

Brain-Flak , 36 byte

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

Hãy thử trực tuyến!

Giải trình:

Số tiếp theo trong chuỗi được lấy bằng n*2+1hoặc n*2+0.

{([()]{}< Loop input times
  (
   (({}<>)<>){} Copy n to other stack; n*2
   ([{}]())  i = 1-i
  ) push n*2 + i
>)} End loop
<> Output other stack


2

> <> , 22 + 3 (cờ -v) byte

0:nao::1+2%++$1-:?!;$!

Hãy thử trực tuyến!

Giải trình

Ngăn xếp được khởi tạo với bộ đếm vòng lặp.

0:nao                  : Push 0 to the stack, duplicate and print with a new line.
                         [7] -> [7, 0]
     ::1+              : Duplicate the stack top twice more then add 1 to it.
                         [7, 0] -> [7, 0, 0, 1]
         2%++          : Mod the stack top by 2 then add all values on the stack bar the loop counter.
                         [7, 0, 0, 1] -> [7, 1]
             $1-:?!;$! : Swap the loop counter to the top, minus 1 from it and check if zero, if zero stop the program else continue.

2

Java 8, 115 81 80 52 byte

n->{for(int i=2;n-->0;i*=2)System.out.println(i/3);}

Cổng câu trả lời Python 2 của @Neil .
1 - được lập chỉ mục và xuất trực tiếp, mỗi giá trị trên một dòng riêng biệt.

Giải trình:

Hãy thử trực tuyến.

n->{                           // Method with integer parameter and no return-type
  for(int i=2;                 //  Start integer `i` at 2
      n-->0;                   //  Loop `n` times:
      i*=2)                    //    Multiply `i` by 2 after every iteration
    System.out.println(i/3);}  //   Print `i` integer-divided by 3 and a new-line

Câu trả lời cũ 80 byte:

n->{String t="",r=t;for(Long i=0L;i<n;)r+=i.parseLong(t+=i++%2,2)+" ";return r;}

Đầu vào 1 chỉ mục và Stringđầu ra phân cách không gian

Giải trình:

Hãy thử trực tuyến.

n->{                             // Method with integer parameter and String return-type
  String t="",r=t;               //  Temp and result-Strings, both starting empty
  for(Long i=0L;i<n;)            //  Loop from 0 to `n` (exclusive)
    r+=                          //   Append the result-String with:
       i.parseLong(        ,2);  //    Binary to integer conversion
                   t+=           //     append the temp-String with:
                      i  %2      //      current index `i` modulo-2
                       ++        //      and increase `i` by one afterwards
       +" ";                     //    + a space
  return r;}                     //  Return the result-String

2

Perl 6 ,  35 30 27 25  20 byte

{[\~](0,+!*...*)[^$_]».&{:2(~$_)}}

Hãy thử nó (35)

{(0,{$_*2+|($+^=1)}…*)[^$_]}

Hãy thử nó (30)

{(⅓X*(2,4,82**$_))».Int}

Hãy thử nó (30)

{(⅔,* *2…*)[^$_]».Int}

Hãy thử nó (27)

{((2 X**1..$_)X/3)».Int}

Hãy thử nó (25)

{(2 X**1..$_)Xdiv 3}

Hãy thử nó (20)

Mở rộng:

{
 (
  2                  # 2
    X**              # cross to the power of
       1..$_         # Range from 1 to the input (inclusive)
            )

             Xdiv    # cross using integer divide
                  3  # by 3
}


2

C, 47 46 byte

a;f(n){for(a=0;n--;a+=a-~a%2)printf("%d ",a);}

Bộ tích lũy abắt đầu bằng không. Ở mỗi bước, chúng ta nhân đôi nó ( a+=a) và thêm một nếu bit có ý nghĩa nhỏ nhất trước đó bằng 0 ( !(a%2)hoặc tương đương, -(~a)%2).

Chương trình kiểm tra

#include <stdlib.h>
#include <stdio.h>

int main(int argc, char **argv)
{
    while (*++argv) {
        f(atoi(*argv));
        puts("");
    }
}

Các kết quả

$ ./153783 1 2 3 4 5 6
0 
0 1 
0 1 2 
0 1 2 5 
0 1 2 5 10 
0 1 2 5 10 21 

2

Japt , 10 9 7 6 byte

Tất cả xuất phát độc lập từ các giải pháp khác.

1 chỉ mục.

õ!²mz3

Thử nó


Giải trình

õ        :[1,input]
 !²      :Raise 2 to the power of each
   m     :Map
    z3   :Floor divide by 3

Thử nó


Phiên bản 7 byte

õ_ou ì2

Thử nó

õ            :[1,input]
 _           :Pass each through a function
   o         :[0,current element)
    u        :Modulo 2 on above
      ì2     :Convert above from base-2 array to base-10

Phiên bản 9 byte

õ_îA¤w)n2

Thử nó

õ            :[1,input]
 _           :Pass each through a function
   A         :10
    ¤        :Convert to binary
     w       :Reverse
  î          :Repeat the above until it's length equals the current element
      )      :Close nested methods
       n2    :Convert from binary to base-10


1

MATL , 7 byte

:&+oRXB

Hãy thử trực tuyến!

Giải trình:

         % Implicitly grab input, n
:        % Range: 1 2 ... n

 &+      % Add the range to itself, transposed
         % 2 3 4 5 ...
         % 3 4 5 6 ...
         % 4 5 6 7 ...
         % 5 6 7 8 ...

   o     % Parity (or modulus 2)
         % 0 1 0 1 ...
         % 1 0 1 0 ...
         % 0 1 0 1 ...
         % 1 0 1 0 ...

    R    % Upper triangular matrix:
         % 0 1 0 1
         % 0 0 1 0
         % 0 0 0 1
         % 0 0 0 0

    XB   % Convert rows to decimal:
         % [5, 2, 1, 0]
         % Implicitly output

Đầu ra sẽ là 0, 1, 2, 5 ...nếu Pđược thêm vào end ( flip), làm cho nó 8 byte.


1
Ý kiến ​​hay,&+
Luis Mendo

1

ruby -n ,32 30 + 1 byte

Vì chúng tôi có chính xác 1 dòng đầu vào, $.thật tiện lợi!

EDIT: Tôi rất ngạc nhiên khi tôi đã tự mình vượt qua chính mình, nhưng dường như sử dụng -ntính năng này là 1 (theo quy tắc 2 trong các điều kiện đặc biệt mặc định , vì Ruby có thể được chạy với ruby -e 'full program'(vì vậy -n1) tất cả các trường hợp getschỉ được sử dụng một lần có thể chơi golf xuống 1 char theo cách này; tôi tin rằng đây là một cột mốc cho ruby, xin vui lòng lên tiếng nếu bạn không đồng ý với dòng suy nghĩ này trước khi tôi liên tục tái sử dụng nó trong tương lai)

v=0
?1.upto($_){p v=v*2|$.^=1}

Hãy thử trực tuyến!

Giải trình

# while gets(); -- assumed by -n
v=0            # First element of the sequence
?1.upto($_){   # Do from "1" to "$LAST_READ_LINE" aka: Repeat [input] times
  p            # print expression
  v=v*2|$.^=1  # Next element is current element times two
               # bitwise-or 0 or 1 alternating
               # $. = lines of input read so far = 1 (initially)
}
# end           -- assumed by -n

Hấp dẫn. Nó có thể trong 27 byte , mặc dù.
Eric Duminil

1
Tốt đẹp! Dường như tất cả chúng ta đã vượt qua 26b.
Unihedron

1

AWK a=0 , 31 byte

{for(;$1--;a=a*2+1-a%2)print a}

Hãy thử trực tuyến!

Sử dụng công thức bị đánh cắp một cách đáng xấu hổ từ câu trả lời Ruby khác này.

Mặc dù không a=0hoạt động (awk coi "trống" là 0), phần tử đầu tiên của 0 sẽ không được in và thay vào đó là một emptydòng, trong khi tôi sẽ tranh luận là một đầu ra hợp lệ có thể sẽ không vượt qua, vì vậy có a=0thể có được chèn dưới dạng đối số dòng lệnh.


Tôi thích công thức của bạn ^^
Asone Tuhid


1

Brainfuck , 40 byte

,[>.>>[>]<[.->[>]+[<]+<]+<[[-<+>]>-<]<-]

Hãy thử trực tuyến!

Chỉ số 0. Nhập dưới dạng mã char, đầu ra dưới dạng unary với chuỗi byte phân tách null 1s. Giả sử các ô 8 bit trừ khi bạn muốn nhập hơn 255. Giả sử các ô âm, mặc dù điều này có thể được sửa chữa với chi phí của một vài byte.

Trước đây, 50 byte

,[[<]>->>[<-<->>>>-<]<[->>++<<]>>+[-<<+>>]<<.<<+>]

Hãy thử trực tuyến!

Đầu vào là mã char, đầu ra là mã char. 1 chỉ mục. Có lẽ có thể được chơi golf một chút.

@Unihedron chỉ ra rằng tôi quên xác định rằng cái này cần các ô có kích thước vô hạn, nếu không thì nó đứng ở số thứ 8.


Khi tôi chạy nó với `` (0d018) dưới dạng trường hợp thử nghiệm, mã của bạn sẽ in `* UªUªUªUªUªUª` (0x01 02 05 0a 15 2a 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa; 0d001 002 005 170 085 170 085 170 085 170 085 170 085 170) :( tio.run/##SypKzMxLK03O/ Lỗi
Unihedron

Ok, có vẻ như đó là một vấn đề kích thước tế bào. Tôi nghĩ rằng mã của bạn phải thích ứng với các số nguyên lớn hoặc bạn cần chỉ định triển khai sẽ chạy mã của mình đúng cách, nhưng mặc định của các ô 8 bit là không đủ
Unihedron

Quên về điều đó, cảm ơn @Unihedron! Tôi sẽ suy nghĩ về một phiên bản 8 bit, có thể xuất hiện ở dạng đơn nguyên.
Jo King

Sử dụng một trình thông dịch với các ô 32 bit, nó hoạt động. Mặc dù tôi nghĩ rằng tôi có thể dùng thử phiên bản bitinteger (8 bit) nếu bạn không có vào cuối tuần: D
Unihedron
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.