Bei einer Eingabe werden alle Exponenten gedruckt, bei denen Basis und Potenz zur Eingabe addiert werden


20

Das ist also meine erste Herausforderung auf dieser Seite.

Die Herausforderung besteht darin, eine ganze Zahl einzugeben , die positiv ist, und die Ausgabe von (wobei die aktuelle ganze Zahl ist) in aufsteigender Reihenfolge ( bis , einschließlich n ) zu drucken . n1ni ( n - i ) iich(n-ich)ich

Beispiel

Bei Eingabe von 5 gibt das Programm Folgendes aus:

1  
8  
9  
4  
1  

14 1 + 4 = 5 2 3 2 + 3 = 5 3 2 3 + 2 = 5 4 1 4 + 1 = 5 5 0 5 + 0 = 5 ist 1 und ist 8 und ist 9 und ist 4 und ist 1 und1+4=5
232+3=5
323+2=5
414+1=5
505+0=5

Ein- und Ausgang

Die Eingabe erfolgt in Form einer positiven Ganzzahl. Es wird eine Liste von Zahlen ausgegeben, die durch Kommas oder neue Zeilen getrennt sind.

Das ist , also gewinnt der kürzeste Code.


5
Das Komma / Zeilenvorschub-Detail sollte weggelassen werden. Es ist hier üblich, die Ausgabe von Listen in jedem geeigneten Format zuzulassen, auch als Listen- / Array-Objekt, das von einer Funktion zurückgegeben wird
Sparr

3
Ist die Eingabe immer größer als 0 oder müssen wir uns mit 0 und Negativen auseinandersetzen?
Veskah

Die Eingänge sind immer positiv
Verkörperung der Ignoranz

6
Zwei ebenso kurze Antworten spielen keine Rolle. Wenn Sie eine Antwort annehmen möchten, wählen Sie die früheste Antwort aus. Ich empfehle jedoch dringend , mindestens ein paar Tage zu warten und würde vorschlagen, niemals eine Antwort zu akzeptieren (um mehr Einsendungen zu ermutigen).
Οurous

2
Sollte der Titel nicht "Geben Sie bei einer gegebenen Ganzzahl alle erhaltenen Potenzen mit einer Basis und einem Exponenten aus, die sich zur Eingabe addieren"?
Nicola Sap

Antworten:


6

APL (Dyalog Unicode) , 8 5 Bytes

⍳*⊢-⍳

Probieren Sie es online!

Anonymes Präfix implizite Funktion. TIO-Tests für den Bereich [1..10].

Danke @lirtosiast für 3 Bytes.

Wie:

⍳*⊢-⍳  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
⍳*⊢-⍳ist 5 Bytes, mit ⎕IO←1.
Lirtosiast

@lirtosiast hat eine Weile gedauert, um herauszufinden, warum das funktioniert, aber ich habe es verstanden. Vielen Dank.
J. Sallé


5

Japt, 5 Bytes

õ_p´U

Versuch es

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


5

Aheui (Esotop) , 193 164 Bytes (56 Zeichen)

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

Probieren Sie es online!

Probieren Sie es auf AVIS ( Koreanisch ); Kopieren Sie einfach den obigen Code und fügen Sie ihn ein. Drücken Sie die Starttaste, geben Sie eine Zahl ein und sehen Sie, wie sie sich bewegt. Drücken Sie auf das Symbol > _ auf der linken Seite , um die Ausgabe anzuzeigen .


Es wird nicht viel Golf gespielt, aber ich probiere es aus.


Ist es möglich einen Zeichensatz zu wählen, so dass jedes Zeichen in 2 Bytes gespeichert wird?
Dienstag,

@tsh Gemäß der Aheui-Spezifikation besteht ein Aheui-Code nur aus UTF-8-Zeichen.
Kobalt











2

Retina , 35 Bytes

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

Probieren Sie es online! Erläuterung:

.+
*

Konvertieren Sie die Eingabe in Unary.

_

Passen Sie jede Position an. Dies setzt dann mehrere Ersetzungsvariablen. $`wird zum linken des Streichholzes; $>`ändert dies so, dass es links ist und übereinstimmt; $.>`Ändert dies, um die Länge zu übernehmen, dh den aktuellen Index. $'In der Zwischenzeit ist das Recht des Spiels, ebenso $.'die Länge, dh der aktuelle Exponent.

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

Erstellen Sie eine Zeichenfolge $.(plus $.'Wiederholungen von $.>`*plus _. Beispiel: Bei einem Index von 2 in einer ursprünglichen Eingabe von 5 $.'ist 3 und $.>`2, die resultierende Zeichenfolge ist also $.(2*2*2*_. Hierbei handelt es sich zweckmäßigerweise um einen Retina-Ersatzausdruck, der 2³ berechnet. Jeder String wird in einer eigenen Zeile ausgegeben.

%~`^
.+¶

Stellen Sie jeder Zeile, die von der vorherigen Stufe generiert wurde, eine Zeile .+voran, um sie in eine Ersetzungsstufe zu verwandeln, und werten Sie diese Stufe aus, um den Ausdruck zu berechnen.


2

QBasic, 35 33 Bytes

Danke @Neil für 2 Bytes!

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

Leicht erweiterte Version auf REPL.IT, da der Interpreter nicht ganz der Spezifikation entspricht.

Ausgabe

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

   5
1
8
9
4
1

Sparen Sie 2 Bytes, indem Sie die Liste in der richtigen Reihenfolge ausgeben! ( b^(a-b)für b=1..a)
Neil

@Neil Danke, ich habe daran gearbeitet!
Steenbergh




2

MATL , 5 Bytes

:Gy-^

Probieren Sie es online!

Erläuterung

Betrachten Sie die Eingabe 5als Beispiel.

:     % 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 Bytes

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

1
Willkommen bei PPCG. Es sieht so aus, als müsste "input" der vordefinierten Variablen zugewiesen werden a, was wir nicht zulassen.
Shaggy

2
Hallo, hier ist eine Lösung für Sie: n->{for(int i=0;i++<n;)System.out.println(Math.pow(i,n-i));} 60 Bytes (Code und Testfälle im Link)
Olivier Grégoire

1

Sauber , 37 Bytes

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

Probieren Sie es online!

Legt fest, $ :: Int -> [Int]dass eine Ganzzahl verwendet und die Ergebnisliste zurückgegeben wird.

$ 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 Bytes

LD<Rm

Port of Lirtosiast 's Jelly Antwort .

Probieren Sie es online aus.

Erläuterung:

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

R, 22 Bytes

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

Ziemlich selbsterklärend; Beachten Sie, dass der :Operator eine höhere Priorität hat als der -Operator, sodass er n:1-1kürzer als ist(n-1):0

Wenn wir bei 0 beginnen dürfen, können wir zwei Bytes verlieren, indem wir (0:n)^(n:0)die Notwendigkeit eines -1 vermeiden.


1

Kohle , 9 Bytes

I⮌ENX⁻θιι

Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:

   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


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.