Diberikan input, cetak semua eksponen di mana dasar dan jumlah daya ke input


20

Jadi ini tantangan pertama saya di situs ini.

Tantangannya adalah mengambil bilangan bulat input n , yang akan menjadi positif, dan mencetak, dalam urutan naik ( 1 ke n , termasuk n ), output dari i(ni) (di mana i adalah bilangan bulat saat ini).

Contoh

Diberikan input 5, program akan mencetak:

1  
8  
9  
4  
1  

14 adalah 1 dan1+4=5
23 adalah 8 dan2+3=5
32 adalah 9 dan3+2=5
41 adalah 4 dan4+1=5
50 adalah 1 dan5+0=5

Masukan dan keluaran

Input akan dalam bentuk bilangan bulat positif. Output akan berupa daftar angka, dibatasi oleh koma atau baris baru.

Ini , jadi kode terpendek menang.


5
detail koma / baris baru harus dihilangkan, itu adalah praktik normal di sini untuk membiarkan output daftar dalam format yang mudah, termasuk sebagai objek daftar / array yang dikembalikan oleh fungsi
Sparr

3
Apakah input selalu lebih besar dari 0 atau kita harus berurusan dengan 0 dan negatif?
Veskah

Masukan akan selalu positif
Perwujudan Ketidaktahuan

6
Dua jawaban yang sama pendeknya tidak masalah. Jika Anda merasa ingin menerima jawaban, pilih yang paling awal diposting. Namun saya sangat menyarankan menunggu setidaknya beberapa hari, dan akan menyarankan untuk tidak pernah menerima jawaban (untuk mendorong lebih banyak pengiriman).
Kamis

2
Bukankah seharusnya judulnya "Diberikan bilangan bulat , cetak semua daya yang diperoleh dengan basis dan eksponen yang berjumlah input"?
Nicola Sap

Jawaban:


6

APL (Dyalog Unicode) , 8 5 byte

⍳*⊢-⍳

Cobalah online!

Fungsi tacit awalan anonim. Tes TIO untuk kisaran [1..10].

Terima kasih @ lirtosiast selama 3 byte.

Bagaimana:

⍳*⊢-⍳  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
⍳*⊢-⍳adalah 5 byte, menggunakan ⎕IO←1.
lirtosiast

@ lirtosiast membutuhkan waktu beberapa saat untuk mencari tahu mengapa itu berhasil, tapi saya mengerti. Terima kasih.
J. Sallé


5

Japt, 5 byte

õ_p´U

Cobalah

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

5

Perl 6 , 19 byte

{^$_+1 Z**[R,] ^$_}

Cobalah online!

Blok kode anonim yang mengambil nomor dan mengembalikan daftar. Zip adalah eksponen rentang 1 to inputdan kisaraninput-1 to 0


5

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

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

Cobalah online!

Cobalah di AVIS ( Korea ); cukup salin dan tempel kode di atas, tekan tombol mulai, masukkan nomor, lihat bagaimana ia bergerak. Untuk melihat output, tekan ikon > _ di sebelah kiri.


Ini tidak banyak golf, tapi saya mencobanya.


Apakah mungkin untuk memilih rangkaian karakter, sehingga masing-masing karakter disimpan dalam 2 byte?
tsh

@tsh Menurut spesifikasi Aheui , kode Aheui hanya terdiri dari karakter UTF-8.
cobaltp

4

Pyth , 5 byte

_m^-Q

Cobalah online!

Disandikan secara optimal ini akan menjadi 4,106 byte.

_                reverse of the following list:
 m               map the following lambda d:
  ^                (N-d)**d
   -Qd             
      d
       Q         over [0,...,N-1]










2

Retina , 35 byte

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

Cobalah online! Penjelasan:

.+
*

Konversikan input ke unary.

_

Cocokkan setiap posisi. Ini kemudian menetapkan beberapa variabel pengganti. $`menjadi bagian kiri pertandingan; $>`memodifikasi ini menjadi kiri dan cocok; $.>`memodifikasi ini untuk mengambil panjangnya, yaitu indeks saat ini. $'Sementara itu adalah hak pertandingan, begitu $.'juga panjangnya yaitu eksponen saat ini.

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

Buat string $.(plus $.'pengulangan $.>`*plus _. Sebagai contoh, untuk indeks 2 pada input asli 5, $.'adalah 3 dan $.>`2 sehingga string yang dihasilkan adalah $.(2*2*2*_. Ini dengan mudah adalah ekspresi pengganti Retina yang mengkalibrasi 2³. Setiap string adalah output pada barisnya sendiri.

%~`^
.+¶

Untuk setiap baris yang dihasilkan oleh tahap sebelumnya, awali sebuah garis .+ke sana, mengubahnya menjadi tahap penggantian, dan mengevaluasi tahap itu, sehingga menghitung ekspresi.


2

QBasic, 35 33 byte

@Neil terima kasih untuk 2 byte!

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

Versi sedikit diperluas pada REPL.IT karena penerjemah tidak sepenuhnya sesuai dengan spesifikasi.

Keluaran

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

   5
1
8
9
4
1

Hemat 2 byte dengan mengeluarkan daftar dalam urutan yang benar! ( b^(a-b)untuk b=1..a)
Neil

@Neil Terima kasih, saya sudah mengerjakannya!
steenbergh




2

MATL , 5 byte

:Gy-^

Cobalah online!

Penjelasan

Pertimbangkan input 5sebagai contoh.

:     % 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
Selamat datang di PPCG. Sepertinya ini membutuhkan "input" untuk ditugaskan ke variabel yang telah ditentukan a, yang tidak kami izinkan.
Shaggy

2
Halo, ini adalah solusi untuk Anda: n->{for(int i=0;i++<n;)System.out.println(Math.pow(i,n-i));} 60 byte (kode dan uji kasus dalam tautan)
Olivier Grégoire

1

Bersih , 37 byte

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

Cobalah online!

Menentukan $ :: Int -> [Int]mengambil bilangan bulat dan mengembalikan daftar hasil.

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

LD<Rm

Port dari jawaban @ lirtosiast 's Jelly .

Cobalah online.

Penjelasan:

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 byte

-2 byte terima kasih kepada @Shaggy

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

Cobalah online!


1
Saya pikir Anda tidak perlu +0; tampaknya bekerja tanpa itu.
Shaggy

1

R, 22 byte

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

Cukup jelas; perhatikan bahwa :operator lebih diutamakan daripada -operator sehingga n:1-1lebih pendek dari(n-1):0

Jika kita diizinkan untuk mulai dari 0, maka kita bisa kehilangan dua byte dengan menggunakan (0:n)^(n:0)menghindari perlunya -1.


1

Arang , 9 byte

I⮌ENX⁻θιι

Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:

   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


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.