รับอินพุตพิมพ์เลขยกกำลังทั้งหมดที่ฐานและผลรวมพลังงานไปยังอินพุต


20

นี่คือความท้าทายครั้งแรกของฉันในเว็บไซต์นี้

ความท้าทายคือการที่จะใช้ในการป้อนข้อมูลจำนวนเต็มnซึ่งจะเป็นบวกและการพิมพ์ในลำดับ ( 1เพื่อn , รวมทั้ง n ) การส่งออกของi(ni) (ที่iเป็นจำนวนเต็มปัจจุบัน)

ตัวอย่าง

รับอินพุต 5 โปรแกรมจะพิมพ์:

1  
8  
9  
4  
1  

14คือ 1 และ1+4=5
23คือ 8 และ2+3=5
32คือ 9 และ3+2=5
41คือ 4 และ4+1=5
50คือ 1 และ5+0=5

อินพุตและเอาต์พุต

ข้อมูลที่ป้อนจะอยู่ในรูปของจำนวนเต็มบวก เอาต์พุตจะเป็นรายการของตัวเลขคั่นด้วยเครื่องหมายจุลภาคหรือบรรทัดใหม่

นี่คือดังนั้นรหัสที่สั้นที่สุดจึงชนะ


5
ควรละเว้นรายละเอียดของเครื่องหมายจุลภาค / บรรทัดใหม่มันเป็นเรื่องปกติที่จะให้ผลลัพธ์ของรายการอยู่ในรูปแบบที่สะดวกรวมถึงวัตถุ / รายการอาร์เรย์ที่ส่งคืนโดยฟังก์ชัน
Sparr

3
อินพุตมีค่ามากกว่า 0 หรือเราต้องจัดการกับ 0 และเชิงลบหรือไม่?
Veskah

ข้อมูลจะเป็นค่าบวกเสมอ
ศูนย์รวมแห่งความไม่รู้

6
คำตอบสั้น ๆ ไม่แพ้กันสองเรื่องไม่สำคัญ หากคุณรู้สึกอยากรับคำตอบให้เลือกคำตอบที่เร็วที่สุด อย่างไรก็ตามฉันขอแนะนำอย่างยิ่งให้รออย่างน้อยสองสามวันและขอแนะนำว่าอย่ารับคำตอบ (เพื่อส่งเสริมการส่งเพิ่มเติม)
Οurous

2
ไม่ควรชื่อเรื่อง "ให้เป็นจำนวนเต็มพิมพ์พลังทั้งหมดที่ได้รับด้วยฐานและเลขชี้กำลังที่รวมกับอินพุต"?
Nicola Sap

คำตอบ:


6

APL (Dyalog Unicode) , 8 5 ไบต์

⍳*⊢-⍳

ลองออนไลน์!

ฟังก์ชันนำหน้าเงียบโดยไม่ระบุชื่อ การทดสอบ TIO สำหรับช่วง [1..10]

ขอบคุณ @lirtosiast เป็นเวลา 3 ไบต์

วิธี:

⍳*⊢-⍳  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
⍳*⊢-⍳ไบต์ 5 ⎕IO←1ใช้
lirtosiast

@lirtosiast ใช้เวลาสักครู่ในการหาสาเหตุว่าทำไมถึงใช้งานได้ แต่ฉันได้มา ขอบคุณ
J. Sallé




5

Aheui (esotope) , 193 164 bytes (56 ตัวอักษร)

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

ลองออนไลน์!

ลองใช้กับ AVIS ( ภาษาเกาหลี ); เพียงคัดลอกและวางรหัสด้านบนกดปุ่มเริ่มต้นใส่ตัวเลขดูว่ามันเคลื่อนไหวอย่างไร หากต้องการดูผลลัพธ์ให้กดไอคอน> _ทางด้านซ้าย


มันไม่ได้กอล์ฟมากนัก แต่ฉันก็ยิงได้


เป็นไปได้หรือไม่ที่จะเลือกชุดอักขระเพื่อให้แต่ละอักขระถูกเก็บใน 2 ไบต์?
tsh

@tsh ตามข้อกำหนดของ Aheui รหัส Aheui ประกอบด้วยอักขระ UTF-8 เท่านั้น
โคบอลต์











2

เรติน่า 35 ไบต์

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

ลองออนไลน์! คำอธิบาย:

.+
*

แปลงอินพุตเป็น unary

_

จับคู่แต่ละตำแหน่ง จากนั้นตั้งค่าตัวแปรแทนที่หลายรายการ $`กลายเป็นทางซ้ายของการแข่งขัน $>`แก้ไขสิ่งนี้ให้เป็นซ้ายและจับคู่ $.>`แก้ไขสิ่งนี้เพื่อรับความยาวเช่นดัชนีปัจจุบัน $'ในขณะเดียวกันก็เป็นสิทธิ์ของการแข่งขันดังนั้น$.'ความยาวคือเลขชี้กำลังปัจจุบัน

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

สร้างสตริง$.(บวก$.'ซ้ำของบวก$.>`* _สำหรับตัวอย่างสำหรับดัชนีของ 2 ในการป้อนข้อมูลเดิมของ 5 แล้ว$.'คือ 3 และ$.>`2 $.(2*2*2*_เพื่อสตริงที่เกิดคือ สิ่งนี้สะดวกคือการแทนที่การแสดงออกของ Retina ที่คำนวณ 2 cal แต่ละสตริงจะถูกส่งออกในบรรทัดของตัวเอง

%~`^
.+¶

สำหรับแต่ละบรรทัดที่สร้างโดยสเตจก่อนหน้าให้นำหน้าบรรทัด.+นั้นเปลี่ยนเป็นสเตจที่แทนที่และประเมินสเตจนั้นดังนั้นการคำนวณนิพจน์


2

QBasic, 35 33 ไบต์

ขอบคุณ @Neil 2 ไบต์!

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

รุ่นที่ขยายเพิ่มขึ้นเล็กน้อยในREPL.ITเนื่องจากล่ามยังไม่ตรงตามข้อกำหนดทั้งหมด

เอาท์พุต

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

   5
1
8
9
4
1

บันทึก 2 ไบต์ด้วยการแสดงรายการตามลำดับที่ถูกต้อง! ( b^(a-b)สำหรับb=1..a)
Neil

@ Neil ขอบคุณฉันได้ทำงานใน!
steenbergh


2

JavaScript (Node.js) , 33 32 ไบต์

n=>(g=i=>--n?++i**n+[,g(i)]:1)``

ลองออนไลน์!

-3 ไบต์ด้วยเครดิตถึง @Shaggy และ -1 ไบต์โดย @ l4m2!

JavaScript (Node.js)ขนาด 36 ไบต์

f=(n,i=1)=>n--?[i++**n,...f(n,i)]:[]

ลองออนไลน์!

JavaScript (Node.js)ขนาด 37 ไบต์

n=>[...Array(n)].map(x=>++i**--n,i=0)

ลองออนไลน์!





2

MATL , 5 ไบต์

:Gy-^

ลองออนไลน์!

คำอธิบาย

พิจารณาการป้อนข้อมูล5เป็นตัวอย่าง

:     % 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 ไบต์

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

1
ยินดีต้อนรับสู่ PPCG ดูเหมือนว่าจะต้องกำหนด "อินพุต" ให้กับตัวแปรที่กำหนดไว้ล่วงหน้าaซึ่งเราไม่อนุญาต
Shaggy

2
สวัสดีนี่คือวิธีแก้ไขสำหรับคุณ: n->{for(int i=0;i++<n;)System.out.println(Math.pow(i,n-i));} 60 ไบต์ (รหัสและกรณีทดสอบในลิงค์)
Olivier Grégoire


1

R , 34 ไบต์

x=1:scan();cat(x^rev(x-1),sep=',')

ลองออนไลน์!


ค่าเริ่มต้น "sep" ไม่ใช่ช่องว่างหรือไม่ มันจะไม่ทำงานเหรอ
stuart stevenson

1
@stuartstevenson "ผลลัพธ์จะเป็นรายการตัวเลขคั่นด้วยเครื่องหมายจุลภาคหรือบรรทัดใหม่"
Giuseppe

1

05AB1E , 5 ไบต์

LD<Rm

ท่าเรือ@lirtosiast 's คำตอบวุ้น

ลองออนไลน์

คำอธิบาย:

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 ไบต์

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

อธิบายตนเองได้อย่างยุติธรรม โปรดทราบว่า:ผู้ประกอบการมีความน่าเชื่อถือสูงกว่า-ผู้ประกอบการเพื่อให้n:1-1สั้นกว่า(n-1):0

หากเราได้รับอนุญาตให้เริ่มต้นที่ 0 เราสามารถสูญเสียสองไบต์โดยใช้การ(0:n)^(n:0)หลีกเลี่ยงความต้องการ -1


1

ถ่าน 9 ไบต์

I⮌ENX⁻θιι

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด คำอธิบาย:

   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


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.