Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Challenges

Print the Great Numeric Pyramid

+12
−0

Print or return this exact text:

                           0
                          0 0
                         0 1 0
                        0 1 1 0
                       0 1 2 1 0
                      0 1 2 2 1 0
                     0 1 2 3 2 1 0
                    0 1 2 3 3 2 1 0
                   0 1 2 3 4 3 2 1 0
                  0 1 2 3 4 4 3 2 1 0
                 0 1 2 3 4 5 4 3 2 1 0
                0 1 2 3 4 5 5 4 3 2 1 0
               0 1 2 3 4 5 6 5 4 3 2 1 0
              0 1 2 3 4 5 6 6 5 4 3 2 1 0
             0 1 2 3 4 5 6 7 6 5 4 3 2 1 0
            0 1 2 3 4 5 6 7 7 6 5 4 3 2 1 0
           0 1 2 3 4 5 6 7 8 7 6 5 4 3 2 1 0
          0 1 2 3 4 5 6 7 8 8 7 6 5 4 3 2 1 0
         0 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 0
        0 1 2 3 4 5 6 7 8 8 8 8 7 6 5 4 3 2 1 0
       0 1 2 3 4 5 6 7 7 7 7 7 7 7 6 5 4 3 2 1 0
      0 1 2 3 4 5 6 6 6 6 6 6 6 6 6 6 5 4 3 2 1 0
     0 1 2 3 4 5 5 5 5 5 5 5 5 5 5 5 5 5 4 3 2 1 0
    0 1 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 2 1 0
   0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 1 0
  0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 0
 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

The number represents the distance of the cell from the closest edge.

Trailing whitespace on each line is acceptable. A newline on the last line is optional.

History
Why does this post require moderator attention?
You might want to add some details to your flag.
Why should this post be closed?

0 comment threads

5 answers

You are accessing this answer with a direct link, so it's being shown above all other answers regardless of its score. You can return to the normal view.

+5
−0

Japt -R, 27 22 bytes

27òÈn28 ÇmX27-X-ZøÃÔû

Test it

Lots of credit goes to xnor for finding the min(i,j,27-i-j) trick.

-5 bytes thanks to @Shaggy

History
Why does this post require moderator attention?
You might want to add some details to your flag.

1 comment thread

General comments (4 comments)
+7
−0

Python 2, 76 bytes

i=27
while~i:print' '*i+' '.join(`min(i,j,27-i-j)`for j in range(28-i));i-=1

Try it online!

Computes the digit in row i from the bottom, position j as min(i,j,27-i-j).

For comparison, a bad effect to compute the row numbers arithmetically, made harder by the presence of leading zeroes:

109 bytes

for i in range(28):print" "*(27-i)+" ".join(str(10**min(27-i,i/2)/9*(10**max(2*i-27,-~i/2)/9)*10).zfill(i+1))

Try it online!

History
Why does this post require moderator attention?
You might want to add some details to your flag.

0 comment threads

+5
−0

Canvas, 19 bytes

‾-{{╷¹²-m‾-¹-m] *]/

Try it here!

‾-{{╷¹²-m‾-¹-m] *]/  Program, ascii-fied for monospacing
‾-                   push 28
  {              ]   for 1…28 (pushing counter & saving in ¹):
   {          ]        for 1…counter (pushing counter & saving in ²):
    ╷                    decrement the counter
     ¹²-                 push ¹-²
        m                minimum of top 2; min(²-1, ¹-²)
         ‾-¹-            push 28-¹
             m           minimum of top 2; min(²-1, ¹-², 28-¹)
                *      separate items with spaces
                  /  pad lines with spaces to form a space diagonal on the left
History
Why does this post require moderator attention?
You might want to add some details to your flag.

0 comment threads

+5
−0

JavaScript (Node.js), 137 136 117 bytes

with(Math)f=n=>(m=(a,b)=>a?m(--a,b)+b(a):[])(28,y=>m(55,x=>x>26-y&x<y+28&(x^y)?min(abs(abs(27-x)-y)/2,27-y):' ')+`
`)

Try it online!

History
Why does this post require moderator attention?
You might want to add some details to your flag.

1 comment thread

General comments (1 comment)
+1
−0

BQN, 33 bytesSBCS

>(⌽(⊑¨55↑+˜⊸+⊔'0'+⌽⊸⌊⊸⌊)¨˜1↓↑)↕28

Run online!

Minimum of barycentric coordinates placed according to a skew transformation on two of them. So, the min(i,j,27-i-j) thing pretty much. The result is a character matrix.

The three coordinates are height, distance from left, and distance from right, and always sum to 27. In row i the height is 27-i, and the possible values for the other two coordinates range from 0 to i. So reversing () ↕28 gives the height and non-empty Prefixes () are the horizontal coordinates. The location of a number is the height plus twice the distance from the left. Group () places each character at its location, giving a list of lists of characters—always zero or one of them in this case.

>(⌽(⊑¨55↑+˜⊸+⊔'0'+⌽⊸⌊⊸⌊)¨˜1↓↑)↕28
                              ↕28  # Range 0…27
 (⌽                       1↓↑)     # Function train
                            ↑      # Prefixes of ↕28
                          1↓       #   but not the first (empty) one
  ⌽                                # Reversed range 27…0
                         ˜         # Exchange the order
   (                   )¨          # On each pair (e.g. 𝕨=3…27 and 𝕩=25)
                  ⌽⊸⌊⊸⌊            # Min-with-reverse 𝕨; min with 𝕩
              '0'+                 # Digit character from number
         +˜⊸+                      # Locations (2×𝕨)+𝕩
             ⊔                     # Put characters at locations
      55↑                          # Extend to length 55
    ⊑¨                             # First at each location, or space
>                                  # Merge axes to give a matrix

It's tacit: see trains and Before as usual.

History
Why does this post require moderator attention?
You might want to add some details to your flag.

0 comment threads

Sign up to answer this question »