อีกหนึ่ง LUL และฉันก็ออกไป


57

คำอธิบายการท้าทาย

ในบางช่องทางบนเว็บไซต์สตรีมมิ่งtwitch.tvข้อความทั่วไปที่คนมักจะสแปมในการแชทเพื่อล่อลวงคนให้เข้าสู่สแปม "LUL" คือ

One more LUL and I'm out

LULเป็นอีโมติคอนยอดนิยมที่ใช้แสดงว่ามีอะไรตลก ๆ เกิดขึ้นในสตรีม

ในไม่ช้า dank memes แสดงศักยภาพของพวกเขาและการเลียนแบบพาสต้าที่เกิดขึ้น:

One more "One more LUL and I'm out" and I'm out

ซึ่งเป็นข้อความเดียวกันซ้อนในตัวเอง ให้เป็นจำนวนเต็มไม่เป็นลบNเอาท์พุทNเวลาที่ซ้อนกัน LUL- พาสต้าในตัวเองตามรูปแบบด้านล่าง

ใช้กฎมาตรฐานที่สั้นที่สุดเป็นไบต์ชนะ

ตัวอย่างอินพุต / เอาต์พุต

0: One more LUL and I'm out
1: One more "One more LUL and I'm out" and I'm out
2: One more "One more "One more LUL and I'm out" and I'm out" and I'm out
...
7: One more "One more "One more "One more "One more "One more "One more "One more LUL and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out

หมายเหตุ

  • อนุญาตให้ขึ้นบรรทัดใหม่ / นำหน้า
  • ต้องเก็บรักษาตัวพิมพ์ใหญ่
  • รหัสของคุณอาจเป็นโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น
  • แทนที่จะพิมพ์คุณอาจส่งคืนสตริงหรือสตริงที่เทียบเท่าในภาษาที่คุณเลือก
  • คุณสามารถสร้างดัชนีจาก1แทนที่จะเป็น0

6
ฉันสามารถเพิ่ม"ในจุดเริ่มต้นและจุดสิ้นสุดได้ด้วยหรือไม่
ร็อด

8
@Rod: ไม่คุณไม่สามารถ
shooqie

27
ชื่อของความท้าทายนี้เป็นที่น่าอึดอัดใจมากสำหรับลำโพงดัตช์ ...
Pakk

5
@Pakk แต่มันเป็นเรื่องจริง ฉันเห็น LUL และฉันอยู่ที่นี่ ...
steenbergh

7
สิ่งนี้สามารถขยายไปยัง YOLO: You Only YOLO once --> YOYOLOO. You Only YOYOLOO Once --> YOYOYOLOOOฯลฯ
DJMcMayhem

คำตอบ:


24

Python 2 , 56 ไบต์

lambda x:('"One more '*x+'LUL'+' and I\'m out"'*x)[1:-1]

ลองออนไลน์!
มันเป็นดัชนี 1


3
ฉันถือว่า[1:-1]ตอนท้ายจดจ้องเครื่องหมายคำพูดคู่ที่เริ่มต้นและสิ้นสุด
Nzall

@Nzall แม่นยำ
Rod

สำหรับ x = 0 สิ่งนี้ให้ 'U' แต่ควรให้ "LUL อีกหนึ่งรายการและฉันไม่อยู่"
Wolfram

3
@ Wolfram มันเป็นดัชนี 1 เพิ่มข้อมูลนี้เพื่อคำตอบ
Rod

18

JavaScript, 57 56 54 52 ไบต์

f=q=>`One more ${q?`"${f(q-1)}"`:"LUL"} and I'm out`

ตัวอย่างการทดสอบ:

f=q=>`One more ${q?`"${f(q-1)}"`:"LUL"} and I'm out`
<input type=number min=0 oninput=o.textContent=f(+this.value)>

<p id=o>

ด้วยเหตุผลบางอย่างเกร็ดเล็กเกร็ดน้อยขนมขบเคี้ยวถูก buggy เมื่อมีการป้อนข้อมูล0แต่มันทำงานเป็นอย่างอื่น f(4)เรียกว่าเหมือน

คำอธิบาย

f=q=>                      //declares a function f with argument q
`One more ... and I'm out` //hardcoded string
 ${q?`"${f(q-1)}"`:"LUL"}  // does recursion based on q
                           // if q is true, ie not 0, recurse
                           // else return "LUL"

ก่อนปิดinputเป็นแอตทริบิวต์ HTML ที่ไม่ถูกต้องอาจต้องการลบออก ประการที่สองเป็นเพราะมันรับอินพุตเป็นสตริงไม่ใช่ตัวเลข ดังนั้นความ"0"จริงในขณะที่0เป็นเท็จ วิธีที่ง่ายที่สุดในการจัดการนั่นคือการวาง+ด้านหน้าthis.valueเมื่อคุณผ่านมันไป
Patrick Roberts

@PatrickRoberts ขอบคุณฉันไม่ทราบว่าทำไมฉันต้องเป็นพิเศษinput:) ฟิลด์
Kritixi Lithos

.replaceมีความสุขผมก็อาจจะได้ลองใช้
ETHproductions

สแต็คโอเวอร์โฟลว์เมื่อจำนวนเป็นลบ
programmer5000

@ programmer500 หมายเลขอินพุตถูกกำหนดให้เป็นแบบไม่ลบดังนั้นจึงไม่ใช่ปัญหา
Kritixi Lithos

11

Befunge, 91 ไบต์

&:00p10p>"tuo m'I dna "1v
09p00-1<^g09p01-1_v#:g0<<vg
>>00g:#^_$>:#,_@  >$"LUL">" erom enO"

ลองออนไลน์!

นี่คือการแยกส่วนของซอร์สโค้ดที่มีการเน้นส่วนประกอบต่างๆ

ซอร์สโค้ดที่มีไฮไลต์พา ธ การเรียกใช้งาน

* * * *เราเริ่มต้นด้วยการอ่านจำนวนการทำซ้ำNและเก็บสองรายการที่ซ้ำกันในหน่วยความจำ
* * * *จากนั้นเราก็นับถอยหลังครั้งแรกที่Nผลักสำเนา "และฉันออกไป" หลายครั้งลงบนสแต็กในสิ่งที่ตรงกันข้าม สำเนาเพิ่มเติมแต่ละรายการจะถูกแยกออกจากสำเนาก่อนหน้าด้วยเครื่องหมายคำพูด เครื่องหมายคำพูดสร้างขึ้นด้วยลำดับ90g(โดยทั่วไปแล้วจะอ่านสำเนาจากบรรทัดแรกของแหล่งที่มา) เนื่องจากเป็นวิธีที่สั้นที่สุดในการทำเช่นนั้น
* * * *เมื่อลูปแรกเสร็จสมบูรณ์แล้วเราจะกด "LUL" ลงบนสแต็ก (โดยทางเทคนิคนี่จะย้อนกลับ
* * * *จากนั้นเรามีวงวนอีกวงล้อมรอบขอบด้านขวาไปทางซ้ายของสนามเด็กเล่นแล้วกลับมาอีกครั้ง เวลานี้เรากำลังนับNวินาทีที่สองกดหลายสำเนาของ "อีกหนึ่ง" ลงในสแต็ก (อีกครั้งในสิ่งที่ตรงกันข้าม) และอีกครั้งสำเนาเพิ่มเติมแต่ละรายการจะถูกแยกออกจากสำเนาก่อนหน้าด้วยเครื่องหมายคำพูด
* * * *เมื่อลูปที่สองเสร็จสมบูรณ์วลีทั้งหมดจะอยู่ในสแต็ก (ย้อนกลับ) ดังนั้นเราจึงต้องเขียนมันออกมา


"การใช้งานที่ดีของการได้รับที่จะผลักดัน ขอบคุณสำหรับคำอธิบาย
MildlyMilquetoast

6

05AB1E , 30 29 ไบต์

…LULIF“"One€£ ÿ€ƒ I'm€Ä"“}}¦¨

ลองออนไลน์!

ประเภทสตริงที่แตกต่างกันดูเหมือนจะไม่เข้ากันดังนั้นด้วยเหตุผลบางอย่างที่ฉันต้องจบการวนซ้ำสองครั้ง


6

C ++, 118 + 16 = 134 ไบต์

auto L(int x){std::string k="One more LUL and I'm out",r=k;for(int i=0;i++<x;)r.replace(i*10-1,3,'"'+k+'"');return r;}

#include<string> - +16

แทนที่ "LUL" เป็นสตริงทั้งหมด N ครั้ง

ใครมีสนามกอล์ฟที่ดีกว่า

ลองออนไลน์!

ขอบคุณมากสำหรับKritixi Lithosและhvd , สำหรับ, uh, ความช่วยเหลือที่ยิ่งใหญ่


@Kritixi ตอนนี้มันมีตัวอย่าง
Matthew Roh

อันนี้สั้นกว่า และฉันคิดว่าคุณอาจต้องรวม<string>คำสั่งการนำเข้าลงใน bytecount ไม่แน่ใจ
Kritixi Lithos

นอกจากนี้คุณสามารถเปลี่ยนfor(int i=0;i<x;i++)ไปfor(int i=0;i++<x;)
Kritixi Lithos

นอกจากนี้r.find("L")จะสั้นกว่าr.find("LOL")2 ไบต์ :)
Kritixi Lithos

เวอร์ชันเรียกซ้ำ: ลองออนไลน์! นอกจากนี้คุณสามารถใช้ส่วนหัวและส่วนท้ายบน TIO สำหรับสิ่งเพิ่มเติมแล้วนับเฉพาะรหัสของคุณในการนับไบต์
nmjcman101

5

Javascript (ES6), 68 ไบต์

f=(x,y="LUL")=>~x?f(--x,`"One more ${y} and I'm out"`):y.slice(1,-1)

f(n)โทรเช่น

นอกจากนี้คุณยังสามารถโทรหามันf(n, "LUL")และแทนที่ LUL ด้วยคำใด ๆ ที่คุณต้องการ


เนื่องจากคำถามนั้นถามเพียง "LUL" คุณอาจกำจัดความยืดหยุ่นในการเปลี่ยนข้อความและเล่นกอล์ฟแบบไบท์ได้ วิธีแก้ปัญหาที่ดีอยู่ดี +1
Farhan Anam

2
@FarhanAnam ฉันคิดว่านี่เป็นโพสต์เริ่มต้นที่ดีที่ฉันจะแก้ไข แต่หลังจากที่ฉันโพสต์ฉันเห็นคนที่โพสต์คำตอบที่ดีขึ้นและไม่ว่าฉันจะพยายามตีกอล์ฟมันยากแค่ไหน ดังนั้นฉันคิดว่าฉันควรทิ้งไว้ที่นี่ด้วยความยืดหยุ่นเพื่อให้ใครบางคนได้สนุกกับมัน

5

V , 39 37 ไบต์

สองไบต์ด้วยความช่วยเหลือของ @KritixiLithos สำหรับวิธีการแทนที่

iOne more LUL and I'm outÀñÓLUL/"."

ลองออนไลน์!

hexdump:

00000000: 694f 6e65 206d 6f72 6520 4c55 4c20 616e  iOne more LUL an
00000010: 6420 4927 6d20 6f75 741b c0f1 d34c 554c  d I'm out....LUL
00000020: 2f22 122e 22                             /".."

มันเป็น LUL ไม่ใช่ LOL;)
geisterfurz007

4

Java, 79 77 ไบต์

แข็งแรงเล่นกอล์ฟ:

String f(int l){return"One more "+(l<1?"LUL":'"'+f(l-1)+'"')+" and I'm out";}

Ungolfed พร้อมการทดสอบ:

public class OneMoreLulAndImOut {

  public static void main(String[] args) {
    OneMoreLulAndImOut obj = new OneMoreLulAndImOut();
    for (int i = 0; i < 8; ++i) {
      System.out.println(Integer.toString(i) + ": " + obj.f(i));
    }
  }

  String f(int l) {
    return "One more " + (l < 1 ? "LUL" : '"' + f(l - 1) + '"') + " and I'm out";
  }    
}

เอาท์พุทโปรแกรม:

0: One more LUL and I'm out
1: One more "One more LUL and I'm out" and I'm out
2: One more "One more "One more LUL and I'm out" and I'm out" and I'm out
3: One more "One more "One more "One more LUL and I'm out" and I'm out" and I'm out" and I'm out
4: One more "One more "One more "One more "One more LUL and I'm out" and I'm out" and I'm out" and I'm out" and I'm out
5: One more "One more "One more "One more "One more "One more LUL and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out
6: One more "One more "One more "One more "One more "One more "One more LUL and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out
7: One more "One more "One more "One more "One more "One more "One more "One more LUL and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out

คุณสามารถเปลี่ยนทั้งสอง"\""เป็น'"'(ตัวอักษรเดียว) เพื่อบันทึก 2 ไบต์
Kevin Cruijssen

1
@KevinCruijssen ขอบคุณฉันรู้ว่ามีบางสิ่งที่ฉันพลาดไป

3

Python ขนาด 79 ไบต์

ฉันแค่ต้องการแก้ปัญหาแบบเรียกซ้ำแม้ว่ามันจะนานกว่าคำตอบอื่น ๆ ก็ตาม

x='"One more %s and I\'m out"'
f=lambda n,s=x:n and f(n-1,s%x)or(s%"LUL")[1:-1]

ลองออนไลน์


3

C #, 125 ไบต์

n=>{string f="One more {0} and I'm out",s=f;for(int i=0;i++<n;)s=string.Format(s,$"\"{f}\"");return string.Format(s,"LUL");};

ฉันสงสัยว่าคุณสามารถใช้การประมาณสตริงแทนFormat...
Bob

เปลี่ยนstringเป็นvarบันทึกสองไบต์
devRicher

@devRicher ไม่สามารถเพราะฉันประกาศตัวแปร 2 ตัว
TheLethalCoder

@Bob ฉันใช้มันไปแล้วไม่แน่ใจว่าฉันสามารถใช้ที่อื่นได้หรือไม่
TheLethalCoder

อ๊ะฉันไม่ได้สังเกตขอโทษ
Bob

3

C, 140 111 ไบต์

ความพยายามครั้งแรกของฉันที่คำถามเล่นกอล์ฟ ..

#define F printf(
#define P 1&&putchar(34)
int a=0;void q(n){a=a?a:n,n?n>0?F"One more "),n-P:n?n+P,F" and I'm out"):0:F"LUL"),n+a?q(n-1):0;}

ฉันได้ตระหนักว่าการส่งออกผิดเนื่องจาก q (0) ให้ LUL ความพยายามครั้งต่อไป:

#define o(Q) O(Q,n?34:0);
#define O printf
void q(int n){o("One more %c")n?q(n-1):O("LUL"),o("%c and I’m out")}

โปรแกรมตัวอย่าง (ทดสอบกับ GCC บน OSX):

#define o(Q) O(Q,n?34:0);
#define O printf
void q(int n) {o("One more %c")n?q(n-1):O("LUL"),o("%c and I’m out")}

int main() {
    q(0),putchar('\n');
    q(1),putchar('\n');
    q(2),putchar('\n');
    q(3),putchar('\n');

    return 0;
}

ให้เอาต์พุต

One more LUL and I’m out
One more "One more LUL and I’m out" and I’m out
One more "One more "One more LUL and I’m out" and I’m out" and I’m out
One more "One more "One more "One more LUL and I’m out" and I’m out" and I’m out" and I’m out

3

Mathematica, 69 68 ไบต์

ขอบคุณ Martin Ender สำหรับการบันทึก 1 ไบต์หายาก!

""<>Nest[{q="\"",{"One more ",#," and I'm out"},q}&,"LUL",#+1][[2]]&

ฟังก์ชั่นที่ไม่มีชื่อการใช้อาร์กิวเมนต์จำนวนเต็มไม่ใช่ค่าลบและส่งคืนสตริง Nestใช้ฟังก์ชันซ้ำ ๆ กับอาร์กิวเมนต์เริ่มต้น ในกรณีนี้ฟังก์ชั่นคือการล้อมรอบอาร์กิวเมนต์ของมันด้วยคำที่เหมาะสมและเครื่องหมายคำพูด เราเริ่มต้นจาก"LUL"และซ้ำอีกN+1ครั้ง; ที่ส่งผลให้เครื่องหมายคำพูดที่ไม่ต้องการล้อมรอบทั้งวลี แต่[[2]]เก็บเฉพาะสิ่งที่อยู่ระหว่างพวกเขา ในตอนท้าย""<>เปลี่ยนรายการซ้อนกันอย่างมากเป็นสตริงเดี่ยว

การส่งก่อนหน้า:

""<>Nest[{o,q="\"",#,q,a}&,{o="One more ","LUL",a=" and I'm out"},#]&

1
จัดการเพื่อลบล้าง byte โดยเริ่มจากLUL:""<>Nest[{q="\"",{"One more ",#," and I'm out"},q}&,"LUL",#+1][[2]]&
Martin Ender

Aha! [[2]]! นั่นเป็นวิธีที่จะหลีกเลี่ยงคำพูดแรก ๆ ที่ไม่ต้องการ: D
Greg Martin

3

C #, 119 85 71 ไบต์

string m(int n)=>$"One more {(n<1?"LUL":$"\"{m(--n)}\"")} and I'm out";

บันทึกแล้ว 14 ไบต์ขอบคุณ @Luc


ดูเหมือนว่าจะใช้งานได้ (ผ่าน LINQPad) ดี สตริง interped ที่ซ้อนกันจะฟังดูไม่แน่นอน แต่ดูเหมือนว่ามันจะสำลักในยุคที่สามก่อน
Bob

@Bob ปัญหาที่ฉันพยายามทำให้มันเป็นเพราะคำพูดหรืออย่างน้อยนั่นก็คือสิ่งที่ฉันคิดว่าเป็นสาเหตุของมันดังนั้นฉันจึงไม่สามารถลบตัวแรกstring.Formatและทำรัง
TheLethalCoder

แล้วประมาณ $ "อีกหนึ่ง {(n <1?" LUL ": $" \ "{m (- n)} \" ")} และฉันไม่อยู่"
Luc

@Luc คุณลองไหม เพราะฉันแน่ใจว่าฉันทำสิ่งที่คล้ายกันและมันไม่ทำงาน บนโทรศัพท์ของฉันตอนนี้ไม่สามารถทดสอบได้
TheLethalCoder

คุณสามารถแทนที่สตริงได้ในรูปแบบด้วย + เพื่อรับ 73 ตัวอักษร:
Chris F Carroll



2

R, 100 97 92 ไบต์

"ฟังก์ชั่นวนซ้ำอีกครั้งและฉันไม่อยู่"

f=function(n)paste("One more",`if`(n<1,"LUL",paste0('"',f(n-1),'"')),"and I'm out");cat(f(scan()))

แก้ไข: ปรากฎว่าวิธีที่ไม่ใช่แบบเรียกซ้ำนั้นสั้นกว่าเล็กน้อย:

x="One more ";y=" and I'm out";cat(x,rep(c('"',x),n<-scan()),"LUL",rep(c(y,'"'),n),y,sep="")




1

Lua, 101 ไบต์

i,f,g='"One more ',' and I\'m out"',io.read()+1 print((i:rep(g).."LUL"..f:rep(g)):sub(2,g*24-(g-2)))

ความพยายามสตริงที่เห็นได้ชัด ทำซ้ำ"One moreและand I'm out"ป้อนข้อมูลด้วย + 1 ครั้งโดยใช้เครื่องหมายแบ่งLULระหว่างจากนั้นลบเครื่องหมายคำพูดแรกและคำสุดท้าย


1

Haskell, 51 ไบต์

ดัชนีจาก 1

f 0="LUL";f n="One more \""++f(n-1)++"\" and I'm out"

7
ดูเหมือนว่าจะพิมพ์LULเครื่องหมายคำพูดไม่ถูกต้อง
Zgarb

ง่ายต่อการสร้างดัชนีจาก 0 โดยใช้f -1="LUL"แต่ฉันไม่เห็นวิธีการลบราคาพิเศษโดยไม่ต้องมีสัญลักษณ์ใหม่มากมาย
Wolfram

1

Ruby, 70 ไบต์

def l x,t="LUL";x.times{t='"One more %s and I\'m out"'%t};t[1..~1];end

เพียงวนตามจำนวนที่กำหนดให้ล้อมรอบสตริงสุดท้ายผ่านสตริงรูปแบบในแต่ละครั้ง

ดัชนีเริ่มต้นที่หนึ่ง


1

ซ้อนกัน 54 ไบต์

('"One more ' ' and I''m out"')*'LUL'join'^.|.$'εrepl

ลองที่นี่! ตัวอย่างการใช้ "ฟังก์ชั่น":

1
('"One more ' ' and I''m out"')*'LUL'join'^.|.$'εrepl
out

หนึ่งสำหรับ 56 ไบต์:

@n'One more LUL and I''m out':@o['LUL' '"'o'"'+ +repl]n*

1

Python 3, 68 ไบต์

def f(a):return('"One more '*a+'LUL'+(' and I%sm out"'%"'")*a)[1:-1]


สิ่งนี้ให้ผลลัพธ์ที่ไม่ถูกต้อง คุณหมายถึง*aแทน*5?
mbomb007

ใช่ฉันทำขอบคุณฉันไม่ได้ตระหนักว่าฉันใส่นั่น
sonrad10

1

CJam, 51 49 ไบต์

" and I'm out\"""\"One more "li1+_@*"LUL"+1>@@*W<

ลองออนไลน์

Ungolfed:

" and I'm out\""   "\"One more " // Push two strings to the stack
     l i 1 +                     // Read a number and add 1
     _ @                         // Copy number and rise '"One more ' to the top
     *                           // Multiply '"One more ' by a number
     "LUL" +                     // Add "LUL"
     1>                          // Chop the first quote
     @@                          // Push the result down
     *                           // Multiply ' and I\'m out"' by a number
     W<                          // Chop the last quote

คุณสามารถใช้Wแทน -1 เพื่อบันทึกหนึ่งไบต์
Business Cat

1
นี่คือบางส่วนเทคนิคอื่น ๆ ที่จะลดลงต่อไปนี้: tio.run/nexus/cjam#@6/... ... ผมเริ่มโดยพยายามที่จะหลีกเลี่ยง\"โดยมีสายเดียวและเพิ่มทั้งสองจบลงด้วย" `จากนั้นฉันก็ต้องแยกสตริงซึ่งฉันทำไม่ได้กับความยาวและ/เพราะส่วนแรกจะสั้นกว่า N/ดังนั้นผมจึงใช้เลื่อนบรรทัดเป็นตัวคั่นและไม่ f*เนื่องจากขณะนี้เรามีทั้งสองส่วนในรายการเราได้อย่างง่ายดายสามารถทำซ้ำทั้งของพวกเขาในครั้งเดียวด้วย และLULแทรกที่ท้ายด้วยการเข้าร่วมง่าย ( *)
Martin Ender

มันเจ๋ง แต่มันดูเหมือนโซลูชันที่แตกต่างอย่างสิ้นเชิงมากกว่าการย่อให้สั้นลงอีก :) นั่นเป็นโปรแกรมแรกของฉันใน CJam ดังนั้นฉันจึงไม่รู้เทคนิคเหล่านี้ขอบคุณ ฉันควรเพิ่มโซลูชันนี้ในคำตอบหรือไม่
Wolfram

@ Wolfram มันขึ้นอยู่กับคุณ ฉันมีความสุขสำหรับคุณที่จะใช้มัน (มิฉะนั้นฉันจะไม่ได้แสดงความคิดเห็น;)
Martin Ender

@ Wolfram ความพยายามครั้งแรกที่ดี! คุณอาจได้รับประโยชน์มากมายจากคำตอบของ Martin
A Simmons


1

Mathematica, 65 63 Bytes

Nest["\"One more "<>#<>" and I'm out\""&,"LUL",#]~StringTrim~_&

ปิดสองไบต์โดยการสังเกตเห็นความท้าทายอนุญาตให้ทำดัชนี 1 รายการ


1

PHP

สวัสดีฉันพบสองวิธีในการทำเช่นนี้

วิธีการเปลี่ยน 1 การจัดทำดัชนี(121 bytes)

function f($x){$v='One more LUL and i\'m out';$t=$v;for($i=1;$i<=$x;$t=str_replace('LUL','"'.$t.'"',$v),$i++);return $t;}

วิธี recursive (86 bytes)

function r($n){$v=($n==0)?'LUL':'"'.r($n-1).'"';return'One more '.$v.' and i\'m out';}

ใน php โปรแกรมมักจะสั้นกว่าฟังก์ชั่น
ติตัส

1

C ++, 80 + 16 = 96 ไบต์

std::string L(int c){return"One more "+(c?'"'+L(--c)+'"':"LUL")+" and I'm out";}

#include<string> - +16

Ungolfed:

std::string LUL(int count) {
    return "One more " + (count? ('"' + LUL(--count) + '"') : "LUL") + " and I'm out";
}

เรียกตัวเองซ้ำและใช้การเพิ่มสตริง ตรงไปตรงมาสวย ฉันหมายถึงอะไรที่ฉันสามารถพูดได้? แม้แต่รุ่นที่ยังไม่สุกก็เป็นซับเดียว

ลองออนไลน์!


1

Cheddar , 71 ไบต์

i->('One more "'*i).slice(0,-1)+'LUL '+('and I\'m out" '*i).slice(0,-2)

ลองออนไลน์!


อาจลองเรียกใช้ซ้ำด้วย_ f ->ไวยากรณ์ซึ่งอาจบันทึกบางไบต์
Downgoat

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