Cetak segitiga angka


25

Diberi nomor N, hasilkan NxN segitiga siku-siku, di mana setiap baris idiisi dengan angka hingga i.

Contoh

n = 0

(tidak ada output)

n = 4

1
1 2
1 2 3
1 2 3 4

n = 10

1
1 2
1 2 3
.
.
.
1 2 3 4 5 6 7 8 9 10

(tidak perlu penyelarasan)

n = N

1
1 2
1 2 3
.
.
.
1 2 3 4 .... N

Tidak ada spasi tambahan di akhir setiap baris.

Jumlah byte terkecil menang, dan celah standar tidak diizinkan.


Bisakah output menjadi daftar angka bersarang?
seequ

Apa yang seharusnya menjadi perilaku untuk n = 0, dan untuk n> 9?
freekvd

@ Sieg Tentu, selama output sudah benar.
Tan WS

@freekvd untuk 0 tidak ada output, untuk n> 9 tidak ada format khusus yang diperlukan
Tan WS

Ah sial, kamu melanggar kiriman saya. Memperbaiki ASAP
seequ

Jawaban:


17

Joe , 5 3 byte (+2 atau +3 untuk -tflag)

Yah, rupanya saya tidak memanfaatkan potensi penuh Joe. Ini mungkin kembali ketika saya pertama kali memposting ini.

\AR

Di sini, Rberikan kisaran dari 0 hingga n, eksklusif. Kemudian \Amengambil awalan yang berurutan (itu Aadalah fungsi identitas). Contoh:

Dengan -tflag (catatan: sekarang ini adalah output standar bahkan tanpa flag):

   (\AR)5
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
   \AR5
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
   \AR2
0
0 1
   \AR1
0
   \AR0

Tanpa itu:

   \AR5
[[0], [0, 1], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2, 3, 4]]
   (\AR)5
[[0], [0, 1], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2, 3, 4]]
   \AR2
[[0], [0, 1]]
   \AR1
[[0]]
   \AR0
[]

Aturan sedikit berubah. Kode lama saya tidak berlaku dengan N = 0. Juga, sekarang keluaran bisa jadi hanya daftar yang disarangkan, jadi -tbisa dijatuhkan.

1R1+R

Sekarang, Rnberikan rentang dari 0 hingga n, eksklusif. Jika diberikan 0, ia mengembalikan daftar kosong. 1+menambahkan 1 ke setiap elemen dari rentang itu. 1Rmemetakan nilai ke rentang dari 1 hingga x. Empty liats, saat dipetakan, mengembalikan daftar kosong.

Contoh output:

   1R1+R0
[]
   1R1+R5
[[1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5]]

Pembaruan: Saya baru saja memperhatikan sesuatu. Fungsi secara otomatis memetakan untuk memberi peringkat 0 elemen. Contoh berikut dijalankan dengan -tbendera.

   1R1+R3 5 8
1
1 2
1 2 3

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

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

Lama: 5 byte (dengan -tbendera)

1R1R

Ini adalah fungsi anonim yang mengambil angka, membuat daftar dari 1 hingga N ( 1Rn) dan memetakan nilai-nilai tersebut ke rentang sebelumnya, memberikan kisaran dari 1 hingga x untuk setiap item dari rentang 1 hingga N.

The -tflag memberikan output sebagai meja J-seperti.

   1R1R5
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

Catatan: bahasa ini sangat baru dan tidak lengkap, tetapi versi terbaru dirilis sebelum tantangan ini.


4
Jadi J tidak cukup untuk memiliki keuntungan pada tantangan berbasis array? : D
Optimizer

4
@Optimizer Optimizing penting.
seequ

4
Tiba-tiba, jawaban saya yang paling banyak dipilih adalah jawaban yang paling sedikit saya habiskan. Ketidakadilan.
seequ

1
Kurasa Joe bukan rata-rata Joe ...
Justin

10

Python 3, 48 45 byte

f=lambda n:n and[f(n-1),print(*range(1,n+1))]

Hore untuk efek samping.


2
Ketiadaan bersarang. Nah, itu bengkok.
seequ

Itu trik bagus: menempatkan fungsi sebelum printuntuk menjalankan prints dalam urutan terbalik.
xnor

8

APL, 5

⍪⍳¨⍳⎕

membuat vektor 1..n dan untuk setiap elemen vektor lain.

Kemudian ⍪ membuat kolom dari semua vektor. Ini menghindari masalah dengan trailing blank.

Cobalah di tryapl.org


Solusi yang lebih lama:

{⎕←⍳⍵}¨⍳⎕

Membuat vektor 1..n

{⎕ ← ⍳⍵} adalah fungsi yang menghasilkan untuk setiap (¨) elemen vektor 1..n pada baris terpisah

Sayangnya, yang ini tidak dapat dicoba di tryapl.org, karena ⎕ ← tidak berfungsi di sana.


Seharusnya tidak ada spasi tambahan di baris mana pun.
randomra

ah terima kasih, saya merindukan yang itu. Akan segera diperbaiki
Moris Zucca

Saya tahu APL akan menjadi solusi
Conor O'Brien

Ya Tuhan, apa yang saya lihat
Codefun64

6

J, 27 byte

J tidak baik dengan output numerik non-array. Fungsi ini menciptakan string yang diformat dengan benar dari angka-angka.

   ;@(<@,&LF@":@:>:@:i.@>:@i.)

   (;@(<@,&LF@":@:>:@:i.@>:@i.)) 4
1
1 2
1 2 3
1 2 3 4

Cobalah online di sini.


Anda juga bisa menggunakan ]\@i.untuk mendapatkan;@(<@,&LF@":@:>:@:]\@i.)
seequ

6

PHP, 53 Bytes

Sunting 2: Ismael Miguel menyarankan agar membaca dari input alih-alih mendefinisikan fungsi, sehingga skor sekarang 53 byte untuk PHP:

for($a=1;@$i++<$n=$argv[1];$a.=" ".($i+print"$a\n"));

Dan sekali lagi, ini dapat ditingkatkan jika PHP dikonfigurasi untuk mengabaikan kesalahan (52 byte):

for($a=1;$i++<$n=$argv[1];$a.=" ".($i+print"$a\n"));
for($a=1;$i++<$n=$_GET[n];$a.=" ".($i+print"$a\n"));

Sunting: Austin menyarankan versi 60 byte dalam komentar:

function f($n){for($a=1;@$i++<$n;$a.=" ".($i+print"$a\n"));}

Yang dapat ditingkatkan jika kami tidak menampilkan kesalahan PHP (59 byte):

function f($n){for($a=1;$i++<$n;$a.=" ".($i+print"$a\n"));}

$amenyimpan baris berikutnya yang akan dicetak, dan setiap kali dicetak spasi dan angka berikutnya ( printselalu kembali 1) digabungkan dengannya.


Fungsi rekursif (65 byte):

function f($n){$n>1&&f($n-1);echo implode(' ',range(1,$n))."\n";}
function f($n){$n>1&&f($n-1);for(;@$i++<$n;)echo$i,' ';echo"\n";}   // Using @ to hide notices.

Fungsi rekursif yang lebih pendek, dengan pelaporan kesalahan dinonaktifkan (64 byte):

function f($n){$n>1&&f($n-1);for(;$i++<$n;)echo$i,' ';echo"\n";}

Fungsi rekursif yang lebih pendek, dengan pelaporan kesalahan dinonaktifkan dan baris kosong sebelum output nyata (62 byte):

function f($n){$n&&f($n-1);for(;$i++<$n;)echo$i,' ';echo"\n";}

Hanya untuk bersenang-senang, fucntions non-rekursif:

function f($n){for($i=0;$i<$n;print implode(' ',range(1,++$i))."\n");}    // 70 bytes
function f($n){for(;@$i<$n;print implode(' ',range(1,@++$i))."\n");}      // 68 bytes, hiding notices.
function f($n){for(;$i<$n;print implode(' ',range(1,++$i))."\n");}        // 66 bytes, error reporting disabled.

2
45 byte:for($a=1;@$i<$n;$a.=" ".(@++$i+print"$a\n"));
Austin

@Austin: Saya sudah membaca dalam komentar bahwa kode harus berupa program lengkap yang dibaca dari input, atau fungsi. Trik yang sangat bagus, dapat ditingkatkan sedikit / byte: for($a=1;@$i++<$n;$a.=" ".($i+print"$a\n"));(44 byte)
Benoit Esnard

Ah ok, kalau begitu saya kira Anda akan melakukannya function f($n){for($a=1;@$i++<$n;$a.=" ".($i+print"$a\n"));}, yaitu 60 byte.
Austin

Memang. Apakah Anda baik-baik saja jika saya mengedit jawaban saya untuk menambahkan solusi Anda?
Benoit Esnard

1
for($a=1;$i++<$n=$_GET[n];$a.=" ".($i+print"$a\n"));-> coba ini (kode lengkap, menggunakan parameter url ndengan nomor)
Ismael Miguel

5

CJam, 13 12 byte

ri{),:)S*N}/

Cara kerjanya :

ri{       }/     "Run the block input number of times with iteration index from 0 to N-1";
   )             "Increment the iteration index (making it 1 to N)";
    ,            "Get an array of 0 to iteration index";
     :)          "Increment each of the above array members by 1";
       S*        "Join all above array numbers with space";
         N       "Add a new line. After all iterations, things are automatically printed";

Cobalah online di sini


4

Pyth, 9 byte

VQjdr1hhN

Benar-benar berpikir bahwa ini bisa dilakukan lebih pendek, tetapi sepertinya tidak begitu.

Cobalah online .

            Q = input()
VQ          For N in [0, 1, ..., Q-1]:
    r1hhN       create list [1, ..., N+1+1-1]
  jd            print joined with spaces

1
Sebuah alternatif 9: VQaYhNjdY. Jika hanya amengembalikan daftar, maka kira-kira VQjdaYhNakan menjadi 8.
Sp3000

2
asebentar digunakan untuk mengembalikan daftar yang ditambahkan.
Pengoptimal

Saya tidak terbiasa dengan Pyth, jadi bisakah Anda menjelaskan mengapa N+1+1-1?
seequ

1
@ Sieg radalah fungsi rentang Python, oleh karena itu -1 ( r1Nmembuat daftar [1, 2, ..., N-1]). Namun dalam N iterasi dari loop, saya ingin daftar [1, 2, ..., N+1], karena itu saya perlu menambahkan 2untuk N. r1hhNditerjemahkan langsung ke range(1, N+1+1). Kemungkinan lain adalah r1+N2( range(1, N+2)).
Jakube

Atau bahkan mhdhN , tapi itu pendekatan yang sangat berbeda.
Jakube

4

JavaScript (ES6) 49 52

Tugas yang sangat sederhana, saya ingin tahu apakah ini dapat dibuat lebih pendek di JS (Perbarui: ya, menggunakan rekursi)

Rekursif 49

f=n=>alert((r=w=>n-i++?w+'\n'+r(w+' '+i):w)(i=1))

Iteraive 52

f=n=>{for(o=r=i=1;i++<n;o+='\n'+r)r+=' '+i;alert(o)}

Di mana saya bisa menguji ini? Saya tidak bisa menemukan taman bermain ES6 yang menerima ini
Kristoffer Sall-Storgaard

@ KristofferSall-Storgaard Firefox mendukung ES6 sebagai default. Jadi Konsol Firefox.
Pengoptimal

4

Java, 85 84 byte

Ini mengejutkan pendek di Jawa.

void a(int a){String b="";for(int c=0;c++<a;System.out.println(b+=(c>1?" ":"")+c));}

Bertakuk:

void a(int a){
    String b="";
    for(int c=0;
        c++<a;
        System.out.println(
                b+=(c>1?" ":"")+c
        ));
}

1 byte berkat Bigtoes / Geobits


Anda dapat menyimpannya dengan memindahkannya b+=...ke println(b+=...).
Geobits

3

Prolog - 119

h(N):-setof(X,(between(1,N,K),setof(Y,between(1,K,Y),X)),[L]),k(L),nl,fail.
k([A|B]):-write(A),(B=[];write(" "),k(B)).

3

Python 2 - 62 54 65 byte

def f(n):
 for x in range(n):print' '.join(map(str,range(1,x+2)))

Nomor tersebut nharus diberikan sebagai input ke program, bukan diinisialisasi dalam variabel.
Zgarb

Terima kasih atas petunjuknya. Tidak yakin tentang itu.
pepp

2
Maaf, saya seharusnya lebih jelas. Yang saya maksudkan adalah bahwa Anda harus benar-benar mendefinisikan Ndengan melakukan N=input()atau sesuatu yang serupa, sehingga program Anda dapat dijalankan seperti itu. Berikut ini adalah diskusi Meta tentang topik tersebut.
Zgarb

Jadi ini benar, kan?
pepp

Terlihat bagus sekarang!
Zgarb

3

J, 9 karakter

Sebagai tacit, kata kerja monadik.

[:":\1+i.
  • i. y- angka dari 0hingga y - 1.
  • 1 + i. y- angka dari 1hingga y.
  • ": y- vektor ydirepresentasikan sebagai string.
  • ":\ y- setiap awalan ydiwakili sebagai string.
  • ":\ 1 + i. y- setiap awalan angka dari 1untuk ydiwakili sebagai matriks karakter.

Nah, itu cukup pintar. +1
seequ

Ini lebih J-esque tetapi tidak melanggar aturan tentang tidak ada spasi tambahan di setiap baris?
mil

@ Miles Memang benar! Hal lain akan sangat rumit.
FUZxxl

3

> <> (Ikan) , 40 37 + 3 = 40 byte

&1>:&:&)?;1\
(?v:n" "o1+>}:{:@
ao\~1+

Sekali lagi,> <> berjalan dengan baik di latihan pencetakan nomor lain. Jalankan dengan -vflag untuk input, mis

py -3 fish.py -v 4

Penjelasan

&               Put n in register
1               Push 1 (call this "i")

[outer loop]

:&:&)?          If i > n...
;                 Halt
1                 Else push 1 (call this "j")

[inner loop]

}:{:@(?         If j > i...
~1+ao             Pop j, print newline, increment i and go to start of outer loop
:n" "o1+          Else print j, print a space, increment j and go to start of inner loop

3

C (tanpa loop, yeah!) - 72 byte

b(n,c){if(n){b(n-1,32);printf("%d%c",n,c);}}r(n){if(n){r(n-1);b(n,10);}}

Ini menciptakan fungsi r(n)yang dapat digunakan dengan cara ini:

main(){ r(5); }

Lihat dalam aksi, di sini di tutorialspoint.com

Itu membutuhkan beberapa trik yang mudah dijelaskan. Saya pikir itu bisa sangat ditingkatkan.


1
Sebenarnya itu 75 byte, bukan 74. Namun, Anda dapat memotongnya menjadi 72 byte dengan mengganti '' dengan 32 dan '\ n' dengan 10:b(n,c){if(n){b(n-1,32);printf("%d%c",n,c);}}r(n){if(n){r(n-1);b(n,10);}}
FatalSleep

1
Trik yang cukup bagus, terima kasih!
A. Breust

Terima kasih! Saya melakukan yang terbaik untuk meningkatkan Anda di kategori C, tapi saya tidak bisa membuat yang lebih pendek! Jadi saya memutuskan untuk mempersingkat milik Anda.
FatalSleep

64 bytes b(n,c){n&&b(n-1,32)^printf("%d%c",n,c);}r(n){n&&r(n-1)^b(n,10);} Wandbox
o79y

2

Python 2 - 72

>>> def p(N):print'\n'.join(' '.join(map(str,range(1,i+2)))for i in range(N))
... 
>>> p(5)
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

Untuk jawaban di situs ini, Anda harus menulis program atau fungsi yang lengkap. Dan Anda harus mencetak hasilnya ke stdout, atau mengembalikannya dari suatu fungsi. N harus dibaca dari input atau diambil sebagai parameter fungsi, tidak ditentukan sebelumnya sebagai variabel.
jimmy23013

@ user23013 OK, sudah diperbaiki!
Kasramvd

Definisi fungsi perlu dimasukkan dalam hitungan byte, jadi saya tidak berpikir ini adalah 61. Mungkin Anda tertarik untuk memanggil fungsi itu sesuatu yang singkat, seperti p. Pada catatan lain, Anda dapat menghapus dua spasi - satu di antara printdan '\n'dan yang lainnya di antara )))dan for.
Sp3000

@ Sp3000 OK, terima kasih atas perhatiannya! diperbaiki!;)
Kasramvd

72:def p(N):print'\n'.join(' '.join(map(str,range(1,i+2)))for i in range(N))
seequ

2

Perl, 28

Membaca parameter dari stdin.

@x=1..$_,print"@x
"for 1..<>

Dari baris perintah:

perl -E'$,=$";say 1..$_ for 1..<>'

tapi saya tidak tahu bagaimana cara menghitungnya (mungkin antara 25 dan 29).


1

Python

import string
N,s=int(input()),list(string.digits)
for i in range(1,N+1):
    print(' '.join(s[1:i+1]))

1
Bukankah ini gagal jika N> = 10?
seequ

@ Sieg Ya Anda benar. Saya baru belajar Python, sedang mencari cara untuk mengkonversi daftar int ke daftar string.
bacchusbeale

63 byte: for i in range(int(input())):print(' '.join("123456789"[:i+1]))- Perhatikan bahwa string diperlakukan sebagai daftar.
seequ


1

Klip , 16

Jm[ijkw,1iwS},1n

Penjelasan

J                   .- join with newlines                           -.
 m[i        },1n    .- map numbers from 1 to numeric value of input -.
    jkw   wS        .- join with spaces                             -.
       ,1i          .- numbers from 1 to index                      -.

1

Pergi, 93 81 78 93 90 byte

func r(n int)(s string){s=string(n+48);if n!=1{s=r(n-1)+" "+s};println(s);return}

Tidak tercemar saat ini

func r(n int) (s string) {
    // Convert n to a string, we do not have to initialize s since
    // we hijacked the return value.
    // Numbers in the ascii table starts at 48
    s = string(n | 48)
    // Unless we are on our last iteration, we need previous iterations,
    // a space and our current iteration
    if n != 1 {
        // Collect the result of previous iteration for output
        s = r(n-1) + " " + s
    }
    println(s)
    // We can use a naked return since we specified the
    // name of our return value in the function signature
    return
}

Jika kita perlu menangani N> 9 kita dapat menggunakan yang berikut ini pada 78 byte, namun itu membutuhkan impor fmtpaket.

func r(n int)(s string){s=Sprint(n);if n!=1{s=r(n-1)+" "+s};Println(s);return}

Jika kita memasukkan pernyataan impor, sekarang saya kembali ke inisial saya 93 92 90 byte

import."fmt";func r(n int)(s string){s=Sprint(n);if n>1{s=r(n-1)+" "+s};Println(s);return}

Uji secara online di sini: http://play.golang.org/p/BWLQ9R6ilw

Versi dengan fmtada di sini: http://play.golang.org/p/hQEkLvpiqt


Saya tidak yakin bagaimana perasaan saya tentang
pelempar

Masalah utama yang saya lihat adalah tidak berfungsi untuk n> 9. Anda dapat menyimpan byte dengan mengubah !=ke >.
Geobits

@Bigtoes, perbaiki sekarang, saya tidak tahu apakah saya seharusnya menghitung importpernyataan itu
Kristoffer Sall-Storgaard

Saya tahu mereka dihitung untuk bahasa yang lebih saya kenal, jadi kemungkinan besar ya. Sucks, I know :)
Geobits

1

ZX / Sinclair BASIC - 39 byte

ZX Basic menggunakan 1 byte per kata kunci (semua huruf besar), jadi bantu untuk menjaga ukuran byte sedikit ...

1 INPUT n:FOR i=1 TO n:FOR j=1 TO i:PRINT j;" ";:NEXT j:PRINT:NEXT i

Menggunakan n = 8

enter image description here


1
Bagus. Tapi ZX basic menggunakan 6 byte lebih tersembunyi untuk setiap literal numerik (trik umum adalah VAL("1")(6 byte karena VAL adalah 1) ditanamkan dari 1(7 byte))
edc65

1

R, 28

for(i in 1:scan())print(1:i)

Outputnya tidak benar untuk nilai input 0. Juga, tidak jelas apakah memimpin [1]pada setiap baris melanggar spesifikasi.
Alex A.

@AlexA. jika Anda melihat lebih dekat pada pertanyaan Anda akan melihat komentar saya menanyakan perilaku apa yang seharusnya untuk n = 0. Tapi terima kasih telah menunjukkan saya ke arah yang benar!
freekvd

Saya melihat komentar. Masalahnya adalah bahwa ini tidak mencetak apa pun untuk 0, itu mencetak 1; 1 0. (Berpura ;- pura adalah istirahat baris.)
Alex A.

Anda mungkin ingin juga mempertimbangkan untuk menggunakan cat(1:i,"\n"). Meskipun sedikit lebih panjang dari print(1:i)itu, itu tidak termasuk memimpin [1]pada setiap baris.
Alex A.

1

TI-Basic, 28 byte

Input N
For(I,1,N
randIntNoRep(1,N->L1
SortA(L1
Disp L1
End

1
Ini tidak menampilkan sebagaimana ditunjukkan oleh format; melainkan, array ditampilkan, tanda kurung dan semuanya, pada homescreen.
lirtosiast

1

C, 89 karakter

// 90 characters
f(int n){int a=1,b;for(;n--;++a){for(b=0;b<a;++b)printf("%c%d",(!!b)*' ',b+1);puts("");}}

Untuk menghilangkan kebingungan tentang puts("");. Ini hanya mencetak karakter baris baru (seperti yang terlihat di sini ):

Perhatikan bahwa menempatkan tidak hanya berbeda dari fputs dalam menggunakan stdout sebagai tujuan, tetapi juga menambahkan karakter baris baru di akhir secara otomatis (yang fput tidak).

Saya mendapatkannya sedikit lebih pendek dengan algoritma java @ TheBestOne:

// 89 characters
f(int a){char b[999]="",*p=b+1;int c=0;for(;a--&&(sprintf(b,"%s %d",b,++c)&&puts(p)););}

puts("");tidak melakukan apa-apa. Anda dapat menggunakan char b[999]=""alih-alih char b[999]={0}menyimpan 1 karakter.
mch

2
puts("");mencetak karakter baris baru.
Felix Bytow

1

Perl: 34 karakter

print"@$_\n"for map[1..$_],1..$_;

Kode ini mendapatkan nomor input yang disediakan melalui variabel khusus $_.


1
Sebagian besar tanda kurung berlebih di sini: print"@$_\n"for map[1..$_],1..$_juga berfungsi.
nutki

Saya menyesuaikan kode.
Felix Bytow

1

C # - 94 byte

Ditulis sebagai fungsi anonim yang mengembalikan string, yang sepertinya tidak diingkari oleh spek.

n=>String.Join("\n\n",Enumerable.Range(1,n).Select(l=>String.Join(" ",Enumerable.Range(1,l))))

Ini adalah versi yang tidak diklik (komentar dibaca dalam urutan BDCA):

n =>
    String.Join("\n\n",                    //...then join it together with newlines.
        Enumerable.Range(1, n).Select(l => //For each l from 1 to n, ...
                String.Join(" ",              //...and join it with spaces, ...
                    Enumerable.Range(1, l)    //...get the range from 1 to l, ...

1

Bash + coreutils, 26 byte

seq $1|sed "x;G;s/\n/ /;h"
  • seq hanya menghasilkan angka 1 sampai n
  • sed menyimpan seluruh output untuk baris tertentu di ruang tunggu, dan kemudian menambahkan baris berikutnya untuk itu.

1

Haskell, 62 57 byte

e=enumFromTo 1
f=putStr.unlines.map(unwords.map show.e).e

Gaya bebas poin. Contoh penggunaan:

Prelude> f 5
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

Doing e=enumFromTo 1 saves 7 bytes.
Zgarb

@Zgarb: Thanks, but if I swap out enumFromTo 1, I have to give the main function a name, too, so it's 5 bytes. Without the name it would be a let construct: let e=enumFromTo 1 in (putStr.unlines.map(unwords.map show.e).e) 5
nimi


1

Scala, 73 65 62 bytes

(n:Int)=>print(1 to n map(1 to _ mkString " ") mkString "\n")

Ungolfed

def printNumberTriangle(n: Int): Unit = {
  def rowString(m: Int): String = 1.to(m).mkString(" ")
  print(1.to(n).map(rowString).mkString("\n"))
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.