Tekrarlanan sayılarla dizi oluşturma


19

Meydan okuma

Bu sorudaki göreviniz pozitif bir tamsayı alan bir program veya adlandırılmış bir işlev yazmaktır n STDIN, ARGV veya işlev bağımsız değişkenleri aracılığıyla girdi olarak (0'dan büyük) alan ve STDOUT veya işlev döndürülen değeri aracılığıyla bir dizi çıkaran yazmaktır.

Kulağa yeterince basit geliyor mu? İşte kurallar

  • Dizi yalnızca gelen tamsayılar içerecektir 1içinn
  • Each tamsayı 1Ortaya ntekrarlanmalıdır xkez xher tamsayı değeridir.

Örneğin:

Giriş:

5

Çıktı:

[1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5]

Dizi sıralanabilir veya sıralanmayabilir.

Bu yani kazanan byte en kısa kod.

Bonus

0.5Çıktı dizinizdeki iki bitişik tamsayı aynı değilse puanınızı çarpın .

Örneğin n = 5, böyle bir yapılandırma

[5, 4, 5, 4, 3, 4, 5, 2, 5, 3, 1, 2, 3, 4, 5]

Yanıtlar:


6

APL, 4 karakter

/⍨⍳⎕

Nasıl çalışır:

kullanıcı girişini okur. Çıktıya gelince, APL varsayılan olarak sonucu her satırdan yazdırır.

⍳n1 ile 1 arasında bir tamsayıdır n. Misal:⍳3←→ 1 2 3

/çoğaltma anlamına gelir . Sağ argümandaki her öğe, sol argümandaki karşılık gelen öğeyle belirtildiği kadar çok tekrarlanır. Misal:2 0 3/'ABC'←→ 'AACCC'

olduğunu gidip operatörü . Bir işlevin sağında gerçekleştiğinde, davranışını değiştirir, böylece ya argümanları değiştirir ( A f⍨ B ←→ B f Adolayısıyla "gidip gelme") ya da her iki tarafta da aynı argümanı sağlar ( f⍨ A ←→ A f Abir "selfie"). İkinci form, bu çözeltide kullanılır.


Bonus:

6-∊⌽⍳¨⍳⎕(8 karakter, teşekkürler @ phil-h )

⍳5(iota beş) 'dir 1 2 3 4 5.

⍳¨ ⍳5(iota her iota beş) (,1)(1 2)(1 2 3)(1 2 3 4)(1 2 3 4 5)bir vektörler vektörüdür. Her ( ¨) bir operatördür, soldaki bir işlevi alır ve sağdaki diziden her öğeye uygular.

diziyi tersine çevirir, böylece elde ederiz (1 2 3 4 5)(1 2 3 4)(1 2 3)(1 2)(,1).

olduğu Enlist (aka düzleştirmek ). Argümanı tekrar tekrar dolaşır ve basit skalerleri bir vektör olarak döndürür.


4 karakterlik bir ifadeye ne dersiniz ? /⍨⍳n
ngn

İstediğiniz gibi, efendim, metni güncelledim. Ancak itirazınız kesinlikle işlevlere sarılmamış diğer çözümlere uygulanmalıdır?
ngn

3
Dyalog APL iki çeşittir: "Klasik" ve "Unicode". Klasik sürüm, Unicode standardı görünmeden önce on yıllardır var olmuştur ve APL karakter kümesi için özel bir karakter başına bayt kodlaması kullanmaktadır. Kullanımı desteklenmese de, hala desteklenmektedir. Bunu bir bahane olarak kullanmak istiyorum. Daha genel olarak, golf alanında bayt değil karakter saymamız gerektiğini düşünüyorum. Unicode'daki en düşük kod noktalarının İngiliz merkezli ASCII tarafından işgal edilmiş olması, bugün önemli olmaması gereken tarihi bir kazadır. İlginçtir, APL, ASCII çıkmadan önce tasarlandı.
ngn

3
@ngn karakter sayma iyi bir fikir değildir , çünkü cevaplar genellikle alfabe çorbası haline gelir. APL karakterleri bayt olarak sayılır, çünkü bu kodlama vardır; bu sitede iyi kurulmuş. Bu, sorunun sorulmasından önce var olan herhangi bir bayt kodlamasıyla çalışır.
FryAmTheEggman

1
@ngn: Bonus cevabınızı açıklayabilir misiniz? Çünkü şu şekilde yapılabilir: 5 4 3 2 1 5 4 3 2 5 4 3 5 4 5 veya 6 eksi 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1, ki bu uzak değil gibi hissettiriyor ilk cevabınızdan.
Phil H

11

Yakut (özyinelemeli), 41 bayt * 0.5 = 20.5

def n(n,i=1);i>n ?[]:n(n,i+1)+[*i..n];end

Veya bir lambda kullanarak (histokrat ve Ventero tarafından önerildiği gibi): 34 bayt * 0.5 = 17

r=->n,i=n{i>0?[*i..n]+r[n,i-1]:[]}

(kullanarak arayın r[argument])


2
Bu gerçekten harika bir çözüm. Bazı baytları bir yöntem ( n=->x,i=1{...n[x,i+1]...) yerine lambda yaparak ve birkaç tane daha ile kaydedebilirsiniz [*i..n].
histocrat

1
Mantığı ters çevirerek, r=->n,i=n{i>0?[*i..n]+r[n,i-1]:[]}
üçlüye


8

Haskell, 31 karakter = 15.5 puan

f n=[y|x<-[n,n-1..1],y<-[x..n]]

Bonus olmadan 27 karakter

f n=[x|x<-[1..n],_<-[1..x]]

Proud Haskeller tarafından dövüldü


ilk çözümünüz doğru değil. Olası bir düzeltmeg n = [y|x<-[n,n-1..1],y<-[x..n]]
karakfa

@karakfa oops: - / ve düzeltme için teşekkürler
John Dvorak

Haskell cevabım sizinkinden biraz daha düşük
gururlu haskeller

Onu tanıtmak için çözümümden bağlamalı mıyım?
John Dvorak

@JanDvorak Yapmak istiyorum, aslında ...
gururlu haskeller

7

C, 22 = 44 bayt * 0.5

Fonksiyon hiki parametre alır. Birincisi intbelirleyici bir n . İkincisi, int*çıktı tamponu olan bir tanesidir.

h(n,o)int*o;{for(n&&h(~-n,o+=n);*--o=n--;);}

Test programı

main(){
int wow[999],*i;
memset(wow,0,sizeof(wow));
h(6, wow);
for(i=wow;*i;i++)printf("%d ", *i);
}

Anlamıyorum. Lütfen açıkla?
bacchusbeale

@bacchusbeale Tamam .. N'den 0'a kadar azalan dizileri özyinelemeli olarak yazar. Kısa diziler daha erken, daha derin bir özyineleme düzeyinde yazılır. N argümanı 0 ise, n falseydir, bu nedenle özyineleme olmaz ve yalnızca 0 yazılır ve dizinin sonunu işaretlemeye yarar.
feersum

7

Pyth - 15 10 * .5 = 5

smr-QdhQUQ

Çevrimiçi deneyin.

Stdin üzerinde girdi bekliyor. Bağımsız keşfedilen algoritma. Oradaki son Q'yu yapıştırmama yardımcı olduğu için @ Sp3000'e teşekkürler: P Ayrıca, ironi? XD

Açıklama:

Q=eval(input())       : implicit
s                     : The sum of...
 m      UQ            : map(...,range(Q))
  r-QdhQ              : range(Q-d,Q+1)

2
Güzel çözüm. Pyth olduğu bir durum hiç var mı olurdu değil kod golf kazanmak? :)
Alex A.

2
@Alex Sorunun niteliğine bağlı olarak, yığın tabanlı golf dilleri (Golfscript, CJam) onu krize sokabilir, ayrıca kütüphane malzemelerine de
ölebilir

6

CJam, 12 15 bayt * 0.5 = 7.5

li_,f{),f-W%~}`

Bu tam STDIN-STDOUT programıdır. Artan soneklerini birleştirir.1 ... nİki bitişik sayının aynı olmamasını sağlayan aralığın .

Burada test edin.


6

Python 2, 53 bayt * 0.5 = 26.5

i=n=input()
x=[]
while i:x+=range(i,n+1);i-=1
print x

Utanmazca ödünç @ VisualMelon'un fikri


6

Haskell, 34 bayt * 0.5 = 17

0%n=[]
i%n=[i..n]++(i-1)%n
g n=n%n

Haskell'i golf için ilk kez kullandım. İle arayın g <number>.



5

GolfScript (14 bayt * 0,5 = puan 7)

 ~:x,{~x),>~}%`

Çevrimiçi demo

Bence bu, diziyi oluşturması nedeniyle bazı mevcut cevaplara benzer. concat( [n], [n-1, n], [n-2, n-1, n], ..., [1, 2, ..., n] )

Ne yazık ki tartışmasız daha zarif golf daha koyamadım:

~:x]{{,{x\-}/}%}2*`

bu da girdiyi xbir diziye yerleştirir ve ardından bir dizideki {,{x\-}/}%her öğeyi o öğenin geri sayımıyla eşleştiren iki kez uygulanır x.


5

C # - 81 (161 bayt * 0,5)

Basit iş C #, umarım neibouring numaralar bonus alır. Stdin'den bir int okur, stdout'a örnek gibi bir dizi yazar.

class P{static void Main(){int n=int.Parse(System.Console.ReadLine()),m=n-1,i;var R="["+n;for(;m-->0;)for(i=m;i++<n;)R+=", "+i;System.Console.WriteLine(R+"]");}}

Daha okunabilir:

class P
{
    static void Main()
    {
        int n=int.Parse(System.Console.ReadLine()),m=n-1,i;
        var R="["+n;
        for(;m-->0;)
            for(i=m;i++<n;)
                R+=", "+i;
        System.Console.WriteLine(R+"]");
    }
}

Örnek çıktı:

n = 5
[5, 4, 5, 3, 4, 5, 2, 3, 4, 5, 1, 2, 3, 4, 5]

Gerçekten daha kısa bir C # çözümü bulmaya çalışıyorum ama bunu
Brandon

1
@MarkKnol System.Consolestatiktir, bir değişkene atayamazsınız, ancak C # 6'da veya bir sonraki adımda, bu özellik hakkında nasıl hissettiğimden emin değilsiniz using System.Console;( using System;bu örnekte ödeme yapmazsınız) eski golf soruları bu nedenle tam olarak etkilemek;)
VisualMelon

1
@IchabodClay daha da kötüleşiyor, using C=System.Console3 bayt kaydediyor ve muhtemelen @MarkKnol'un (üzgünüm!), Utanç verici ihmalin ne anlama geldiğini ifade ediyor.
VisualMelon

1
Ayrıca, kurallara göre, tam bir program oluşturmak yerine sadece yönteme sahip olabilirsiniz. Böyle bir şey ... bu . (Beyaz boşluklu 114 bayt ve benzeri kaldırıldı. 57 bayt bonus ile.)
Ichabod Clay

1
@IchabodClay gerçekten; Fonksiyonlara tam programlar göndermeyi tercih ederim, iyi bir neden yok, IO sadece eğlencenin bir parçası gibi görünüyor (ben de argv kullanma eğiliminde değilim). Bu daft kısıtlamaları olmadan daha iyi bir puanlama cevabı yayınlamaktan çekinmeyin!
VisualMelon

4

JavaScript, ES6, 41 bayt

f=i=>[...Array(i).fill(i),...i?f(--i):[]]

Bu fgibi çağrılabilen bir işlev oluşturur f(6)ve gerekli diziyi döndürür.

Bu, her yinelemenin ideğerli bir öğe dizisi oluşturduğu ive f(i-1)durma koşulu ile döndürülen bir diziyi birleştirdiği yinelemeli bir yaklaşım kullanır i==0.

En son Firefox'ta çalışır.


4

Haskell, 14 = 28 bayt / 2

f n=n:[1..n-1]>>= \r->[r..n]

örnek çıktı:

>f 5
[5,1,2,3,4,5,2,3,4,5,3,4,5,4,5]

Bonus olmadan 24 bayt:

f n=[1..n]>>= \r->[r..n]

=<<boşluk kaçınmak yardımcı olabilir ? Öyle olabileceğini hissediyorum, ama daha önce düşünmemiş olsaydın şaşırırdım.
John Dvorak

@JanDvorak Kullansaydım =<<lambda için parantez lazım
gurur haskeller

Tam olarak lambdaların parantezlere ihtiyacı olduğunda kafam karıştı. Lambda başlığı aynı sabitliğe sahip >>=mi?
John Dvorak

@JanDvorak Fiksiyeti yok; Ben ne kadar doğru bu kuralı olduğundan emin değilim, ama operatörler (bölümler göz önüne alınmadan) olamaz nerede lambda'lar sadece görünebilir: sonra (, [, =, ,, herhangi bir operatörleri ve benzeri sonrası
gururlu haskeller

Sanırım ne lambdalar ne de operatörler desen olarak görünemezler? let \x->y = (2+) in (x,y)imkansız gibi görünüyor.
John Dvorak


3

vba, 76 * 0.5 = 38

Sub i(q)
For Z=1 To q:For x=q To Z Step -1:Debug.?x;",";:Next:Next
End Sub

Eğer yoğuşmalı 1 (0.5, teknik olarak) bayt (ler) kaybedebilir For Z=1 ToiçinFor Z=1To
Taylor Scott

Ayrıca yoğunlaşmasına olabilir Next:NextiçinNext x,Z
Taylor Scott

2

R, 44 * .5 = 22

f=function(n){r=0;for(i in 1:n)r=c(r,n:i);r}

Hızlı bir test

> f(1)
[1] 1
> f(2)
[1] 2 1 2
> f(3)
[1] 3 2 1 3 2 3
> f(4)
 [1] 4 3 2 1 4 3 2 4 3 4

Ne ? TSQL yok mu?
Optimize Edici

@Optimizer maybe later :)
MickyT

2

JavaScript, ES6, 66 bayt * 0.5 = 33

f=i=>(g=n=>[...Array(n).fill().map((v,x)=>i-x),...n?g(n-1):[]])(i)

Optimizer'ın özyinelemeli yaklaşımını temel alarak , azalan uzunlukta azalan çalışmalar yapabiliriz, örneğin[4,3,2,1, 4,3,2, 4,3, 4] .

İle aynı değerde alt diziler Array(i).fill(i)yapmak undefinedyerine, uygun uzunlukta doldurulmuş alt diziler yaparız Array(n).fill()ve ardından değerleri kullanarak azalan bir çalışma olarak değiştiririz .map((v,x)=>i-x). Ayrıca, bir iç işlevi tanımlar ve bunlara yöneliriz g; dış işlev fyalnızca iwhile gtekrarlarının değerini saklamak için vardır.


2

T-SQL, 176 * 0.5 = 88

T-SQL @Optimizer'ı özlediğiniz gibi göründüğünden, burada tüm ihtişamıyla :).

Birkaç işlev seçeneği, bir Skaler ve Satıriçi Tablo Değerli işlevi. Skaler işlevi, döngülemek için while döngülerini kullanır ve Satır İçi Tablo Değerli işlevinin bir dizi için özyinelemeli bir CTE kullandığı ve bir tablo döndürdüğü bir sayı dizesi döndürür. Tabii ki bunlar asla rekabetçi olmayacak, bu yüzden golf oynamak için çok fazla zaman harcamadım.

Satır İçi Tablo Değerli İşlev, 176 * .5

CREATE FUNCTION F(@ INT)RETURNS TABLE RETURN WITH R AS(SELECT @ N UNION ALL SELECT N-1FROM R WHERE N>0)SELECT B.N FROM R CROSS APPLY(SELECT TOP(R.N)N FROM R A ORDER BY N DESC)B

Aşağıdaki gibi adlandırılır

SELECT * FROM dbo.F(5)

SQLFiddle örneği

Skaler Fonksiyon, 220 * .5

CREATE FUNCTION G(@ INT)RETURNS VARCHAR(MAX)AS BEGIN DECLARE @S VARCHAR(MAX),@N INT=1,@I INT,@C INT WHILE @N<=@ BEGIN SELECT @I=@N,@C=@ WHILE @C>=@I BEGIN SELECT @S=CONCAT(@S+',',@C),@C-=1 END SET @N+=1 END RETURN @S END

Aşağıdaki gibi adlandırılır

SELECT dbo.G(5)

SQLFiddle örneği



2

perl, 26 bayt

for(1..$n){print"$_ "x$_;}

1
Lütfen skorunuzu gönderin. Ayrıca, bu kod golf olduğundan, ekstra boşlukları ve tanımını kaldırarak bayt kaydedebilirsiniz $n.
Alex A.

Bu benim için Perl 6 altında çalışmaz
Alex A.

@Alex, hata nedir, 5.10 altında çalışır
michael501

Unable to parse postcircumfix:sym<{ }>, couldn't find final '}' at line 3. İdeone.com'da denedim.
Alex A.

@Alex, şunu deneyin: C: \ Windows \ system32> perl -e "$ n = 5; (1 .. $ n) {print qq ($ _) x $ _;};" 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
michael501

2

JavaScript (okunabilir), 131 bayt

Code Golf'te yeniyim, bu yüzden bu en iyisi değil

function f(n) {
    var arr = [];
    for(var i = 1; i <= n; i++) {
        for(var j = 0; j < i; j++) {
            arr.push(i);
        }
    }
    return arr;
}

JavaScript (daha az okunabilir), 87 bayt

Jscompress.com kullanılarak küçültülmüş

function f(e){var t=[];for(var n=1;n<=e;n++){for(var r=0;r<n;r++){t.push(n)}}return t}

2

TECO, 25 bayt * 0.5 = 12.5

a\+1%a%b<qauc-1%b<-1%c=>>

Yukarıdakiler, bonus olmayan sürümü 13 baytta zorlukla yenmektedir:

a\%a<%b<qb=>>

2

C #, 114 99 * 0.5 = 49.5 bayt

(VisualMelon'un cevabından biraz yardım alarak) Edit: ve James Webster'ın yorumu

int[]A(int n){int m=n,i,c=0;var a=new int[n*(n+1)/2];while(m-->0)for(i=m;i++<n;)a[c++]=i;return a;}

Ungolfed:

int[] FooBar(int n)
{
    int altCounter = n, i, arrayCounter = 0;
    var returnArray = new int[n * (n + 1) / 2];
    while(m-->0)
        for(i = altCounter; i++ < n; )
            returnArray[arrayCounter++]=i;
    return returnArray;
}

Utanmazca feersum'un C cevabından aldığım güvensiz bir sürüm var, ancak yöntemi çağırmadan önce belleği ayırmanız gerektiğinden, kurallara uyduğundan% 100 emin değilim.

C # (güvenli değil), 82 * 0,5 = 41 bayt

unsafe void A(int n,int*p){int*z=p;int m=n,i;while(m-->0)for(i=m;i++<n;)z++[0]=i;}

Aşağıdaki gibi adlandırılır:

int n = 5, length = (int)((n / 2f) * (n + 1));
int* stuff = stackalloc int[length];
int[] stuffArray = new int[length];
A(n, stuff);
System.Runtime.InteropServices.Marshal.Copy(new IntPtr(stuffArray), stuffArray, 0, stuffArray.Length);
//stuffArray == { 5, 4, 5, 3, 4, 5, 2, 3, 4, 5, 1, 2, 3, 4, 5 }

VisualMelon'un önerisine göre (teşekkürler!), Güvensiz kod, boyutu daha da azaltan güvenli kod ile yeniden yapılabilir! Son sonuç dizisinin oluşturulmasının yöntemin dışında yapılmasına izin verilip verilmediğini hala soruyor.

C #, 72 * 0.5 = 36 bayt

void A(int n,int[]p){int z=0,m=n,i;while(m-->0)for(i=m;i++<n;)p[z++]=i;}

İyi iş! Ayrılan sürüm için, güvenli ve int[]düz geçmek için çok daha ucuz void A(int n,int[]p){int z=0,m=n,i;while(m-->0)for(i=m;i++<n;)p[z++]=i;}- Ben kurallar ile ilgili muhtemelen biraz iffy kabul ediyorum;)
VisualMelon

Güvenli olmayan sürüm için iyi bir 8bayt kesen yerel bir işaretçi oluşturmanız gerekmez. Ayrıca, noktayı kaçırıyor olabilirim, ancak güvenli olmayan arama kodunun son satırı System.Runtime.InteropServices.Marshal.Copy(new IntPtr(stuff), stuffArray, 0, length);mı olmalı ?
VisualMelon

@VisualMelon Değişkenlerin isimlerini yeniden adlandırdıktan sonra tekrar kontrol etmediğim için aldım. Uyarı için teşekkürler: D. Cevabınızı, yorumunuzdaki daha kısa sürüme göre düzenledi.
Ichabod Clay

var a=new int[(int)((n/2f)*(n+1))];Sanırım 109'a indiren uzunluğu inlining ederek güvenli versiyonu biraz kesebilirsiniz
James Webster

Kireç yeniden yazılarak bir kez daha:(n*(n+1)/2)
James Webster


1

C #, 116115 + 33 = 148 bayt

En kısa kod değil, ama ... yine de çalışıyor: P

int[]l(int m){List<int>i=new List<int>();for(int j=1;j<=m;j++){for(int x=0;x<j;x++){i.Add(j);}}return i.ToArray();}

Dosyanın üstünde bunu gerektirir (33 bayt):

using System.Collections.Generic;

Golfsiz sürüm:

int[] RepatedNumberList(int m)
{
    List<int> intList = new List<int>();
    for (int j = 1; j <= m; j++)
    {
        for (int x = 0; x < j; x++)
        {
            intList.Add(j);
        }
    }
    return initList.ToArray();
}

1

J, 23 * 0.5 = 11.5

   f=.-;@(<@|.@i."0@>:@i.)
   f 5
5 4 5 3 4 5 2 3 4 5 1 2 3 4 5

J, 11

   f=.#~@i.@>:
   f 5
1 2 2 3 3 3 4 4 4 4 5 5 5 5 5

1
23 * 0.5olduğu 11.5değil 10.5.
ProgramFOX

@ProgramFOX iyi yakalama. Düzenleyecek misin yoksa ben mi yapmalıyım? IMO'yu düşürmek için iyi bir neden değil.
John Dvorak

@JanDvorak Sadece düzenledi. Ve ben aşağı inmedim, hatayı görmeden önce bile iptal ettim.
ProgramFOX

Şimdi hata düzeltildiğine göre, bonus çözümü aşağıya mı taşınmalı?
John Dvorak

-1Bayt: f=.-[:;<@|.@i."0@>:@i.puanları eşit yapıyor!
Bolce Bussiere

1

JavaScript (ES6) 29 (58 * 0,5)

Düzenle kaldır; thx @Optimizer

Q=o=>(m=>{for(n=o,r=[];n>m||++m<(n=o);)r.push(n--)})(0)||r

FireFox / FireBug konsolunda test

Q(9)

Çıktı

[9, 8, 7, 6, 5, 4, 3, 2, 1, 9, 8, 7, 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 9, 8, 7, 6, 5, 4, 9, 8, 7, 6, 5, 9, 8, 7, 6, 9, 8, 7, 9, 8, 9]

Ungolfed

Q=o=>{
  for(m=0,r=[];m<o;++m)
    for(n=o;n>m;)
      r.push(n--);
  return r
}

1

ECMAScript6, 67 * 0,5 = 33,5 bayt

f=n=>{a=[],b=0;while(c=n+b,n--){while(c-b)a.push(c--);b++}return a}

Bundan oldukça memnunum ... Orijinalimin dörtte biri kadar.

f(4) İadeler:

[ 4, 3, 2, 1, 4, 3, 2, 4, 3, 4 ]

Eski cevap:

f=i=>{a=b=Array;while(i)a=a.concat(b.apply(null,b(i)).map(e=>i)),i--;return a}

Bu benim kod golf attığım ilk atışım ... Hala 0.5x bonus almak istiyorum. Herhangi bir öneri bekliyoruz!

F (n) ile çağrılır.


Kendini JavaScript için oldukça yeni olmalı :). (1) Bağımsız değişken etrafındaki parantezleri kaldırın d, (2) a=b=c=[]bildirim bölümü için, (3) c[a].map(e=>a)(4)b.push(...c)
Optimizer

Yorumunuzu okumadan önce daha kısa bir versiyon yaptım, yazıma koyacağım. JS ile ilgili deneyimim çoğunlukla basit web uygulamaları için DOM / stil manipülasyonu ile sınırlı ... ve bugüne kadar yeni ES6 özelliklerinden hiçbirini kullanmadım.
binormal

1

C #, 108 bayt * 0.5 = 54

List<int> f(int n){var r=new List<int>();int m=n-1,i;r.Add(n);for(;m-->0;)for(i=m;i++<n;)r.Add(i);return r;}

Zor işi yaptığı için VisualMelon'a teşekkürler! Mümkün olduğunca sıkıştırmaya çalışacağımı düşündüm.

(114 bayt * 0,5 = 57, int [] döndürmek için .ToArray () yöntemini kullanmakta ısrar ederseniz)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.