Bir giriş verildiğinde, baz ve gücün girişe toplandığı tüm üsleri yazdırın


20

Bu benim bu sitedeki ilk görevim.

Zorluk bir giriş tamsayı almaktır (artan sırayla, pozitif olur ve baskı için , n de dahil olmak üzere ), çıkış (burada mevcut tamsayıdır). n1nben(n-ben)ben

Misal

Giriş 5 verildiğinde program yazdırır:

1  
8  
9  
4  
1  

14 1 ve 8 ve 9 ve 4 ve 1 ve1+4=5
232+3=5
323+2=5
414+1=5
505+0=5

Giriş ve çıkış

Girdi pozitif bir tamsayı biçiminde olacaktır. Çıktı, virgül veya yeni satırlarla ayrılmış bir sayı listesi olacaktır.

Bu , bu yüzden en kısa kod kazanır.


5
virgül / satırsonu detayı atlanmalıdır, liste çıktısının bir işlev tarafından döndürülen bir liste / dizi nesnesi de dahil olmak üzere herhangi bir uygun formatta olmasına izin vermek normal bir uygulamadır
Sparr

3
Girdi her zaman 0'dan büyük mü yoksa 0 ve negatiflerle mi uğraşmamız gerekiyor?
Veskah

Girdiler her zaman olumlu olacaktır
Cehalet

6
Aynı derecede kısa iki cevap önemli değil. Bir yanıtı kabul etmek istiyorsanız, ilk gönderilen cevabı seçin. Ancak ben şiddetle en az birkaç gün bekledikten tavsiye ve asla bir cevap kabul öneririm (daha gönderimleri teşvik etmek).
Οurous

2
Başlık " Tamsayı verildiğinde , bir taban ve girdiyle toplanan bir üsle elde edilen tüm güçleri yazdırın " mı olmamalıdır ?
Nicola Sap

Yanıtlar:


6

APL (Dyalog Unicode) , 8 5 bayt

⍳*⊢-⍳

Çevrimiçi deneyin!

Anonim önek zımni fonksiyonu. [1..10] aralığı için TIO testleri.

3 byte için @ lirtosiast teşekkürler.

Nasıl:

⍳*⊢-⍳  Tacit function
      Range. n generates the vector [1..n].
  ⊢-  Subtracted from the argument. The vector is now [n-1,n-2,...,0]
⍳*     Exponentiate using the range [1..n] as base. The result is the vector
       [1^(n-1), 2^(n-2), 3^(n-3),...]

2
⍳*⊢-⍳kullanarak 5 bayttır ⎕IO←1.
lirtosiast

@lirtosiast bunun neden işe yaradığını anlamak için biraz zamanımı aldı, ama anladım. Teşekkürler.
J. Sallé


5

Japt, 5 bayt

õ_p´U

Dene

õ         :Range [1,input]
 _        :Map
  p       :  Raise to the power of
   ´U     :  Input decremented


5

Aheui (esotope) , 193 164 bayt (56 karakter)

방빠싹받분샥퍼붇바파쟈뿌차샦히망맣여
타빠바푸투반또분뽀뿌서썪삯타삯받반타
석차샦져쌲볼어타토싻삭빠쏛ㅇ또섞썪뻐

Çevrimiçi deneyin!

AVIS ( Korece ) üzerinde deneyin ; sadece yukarıdaki kodu kopyalayıp yapıştırın, başlat düğmesine basın, bir sayı girin, nasıl hareket ettiğini görün. Çıktıyı görmek için sol taraftaki > _ simgesine basın .


Çok golf değil, ama deniyorum.


Her karakter 2 baytta saklanacak şekilde bir karakter seti seçmek mümkün mü?
tsh

@tsh Aheui spesifikasyonuna göre , bir Aheui kodu sadece UTF-8 karakterlerinden oluşur.
kobaltp











2

Retina , 35 bayt

.+
*
_
$$.($.'*$($.>`$*)_¶
%~`^
.+¶

Çevrimiçi deneyin! Açıklama:

.+
*

Girişi tekli olarak dönüştürün.

_

Her konumu eşleştirin. Bu daha sonra birkaç değiştirme değişkeni ayarlar. $`maçın solu olur; $>`bunu sol ve eşleme olarak değiştirir; $.>`uzunluğu, yani geçerli dizini alacak şekilde değiştirir. $'bu arada maçın hakkı $.', uzunluk yani mevcut üs.

$$.($.'*$($.>`$*)_¶

Bir dize oluşturun $.(artı $.'yinelemesini $.>`*artı _. Bir örnek olarak, 5 orijinal girişindeki 2 indeksi $.'için 3 ve $.>`2 dir, böylece sonuçta elde edilen dize olur $.(2*2*2*_. Bu uygun bir şekilde 2p'yi hesaplayan bir Retina değiştirme ifadesidir. Her dize kendi satırında çıkar.

%~`^
.+¶

Önceki aşama tarafından oluşturulan her satır için, bir satırın .+önüne bir önek ekleyin , bir yedek aşamaya dönüştürün ve o aşamayı değerlendirin, böylece ifadeyi hesaplayın.


2

QBasic, 35 33 bayt

@Neil 2 bayt için teşekkür ederiz!

INPUT a
FOR b=1TO a
?b^(a-b)
NEXT

REPL.IT üzerinde biraz genişletilmiş sürümTercüman tamamen teknik özelliklere olmadığından .

Çıktı

QBasic (qb.js)
Copyright (c) 2010 Steve Hanov

   5
1
8
9
4
1

Listeyi doğru sırada vererek 2 bayt tasarruf edin! ( b^(a-b)için b=1..a)
Neil

@Neil Teşekkürler, çalıştım!
steenbergh




2

MATL , 5 bayt

:Gy-^

Çevrimiçi deneyin!

açıklama

Girişi 5örnek olarak ele alalım.

:     % Implicit input. Range
      % STACK: [1 2 3 4 5]
G     % Push input again
      % STACK: [1 2 3 4 5], 5
y     % Duplicate from below
      % STACK: [1 2 3 4 5], 5, [1 2 3 4 5]
-     % Subtract, element-wise
      % STACK: [1 2 3 4 5], [4 3 2 1 0]
^     % Power, element-wise. Implicit display
      % STACK: [1 8 9 4 1]

2

Java, 59 Bayt

for(int i=1;a+1>i;i++)System.out.println(Math.pow(i,a-i));

1
PPCG'ye hoş geldiniz. Bu a, izin vermediğimiz , önceden tanımlanmış değişkene "giriş" atanmasını gerektirir gibi görünüyor .
Shaggy

2
Merhaba, işte sizin için bir düzeltme: n->{for(int i=0;i++<n;)System.out.println(Math.pow(i,n-i));} 60 bayt (bağlantıdaki kod ve test
Olivier Grégoire

1

Temiz , 37 bayt

import StdEnv
$n=[i^(n-i)\\i<-[1..n]]

Çevrimiçi deneyin!

$ :: Int -> [Int]Bir tamsayı almayı ve sonuç listesini döndürmeyi tanımlar .

$ n                // function $ of n
 = [i ^ (n-i)      // i to the power of n minus i
    \\ i <- [1..n] // for each i in 1 to n
   ]


1

05AB1E , 5 bayt

LD<Rm

Bağlantı noktası @lirtosiast 'in Jelly cevabı .

Çevrimiçi deneyin.

Açıklama:

L      # List in the range [1, (implicit) input integer]
       #  i.e. 5 → [1,2,3,4,5]
 D<    # Duplicate this list, and subtract 1 to make the range [0, input)
       #  i.e. [1,2,3,4,5] → [0,1,2,3,4]
   R   # Reverse it to make the range (input, 0]
       #  i.e. [0,1,2,3,4] → [4,3,2,1,0]
    m  # Take the power of the numbers in the lists (at the same indices)
       # (and output implicitly)
       #  i.e. [1,2,3,4,5] and [4,3,2,1,0] → [1,8,9,4,1]

1

Lua , 43 41 bayt

@Shaggy sayesinde -2 bayt

s=io.read()for i=1,s do print(i^(s-i))end

Çevrimiçi deneyin!


1
İhtiyacınız olduğunu düşünmüyorum +0; onsuz çalışıyor gibi görünüyor.
Shaggy

1

R, 22 bayt

n=scan();(1:n)^(n:1-1)

Oldukça açıklayıcı; unutmayın :operatör daha yüksek precendence olduğunu -, böylece operatör n:1-1daha kısadır(n-1):0

0'dan başlamamıza izin verilirse, (0:n)^(n:0)-1'e ihtiyaç duymadan iki bayt kaybedebiliriz .


1

Kömür , 9 bayt

I⮌ENX⁻θιι

Çevrimiçi deneyin! Bağlantı, kodun ayrıntılı versiyonudur. Açıklama:

   N        Input as a number
  E         Map over implicit range
       ι    Current value
     ⁻      Subtracted from
      θ     First input
    X       Raised to power
        ι   Current value
 ⮌          Reverse list
I           Cast to string
             Implicitly print on separate lines


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.