ทำไม 6 จึงกลัว 7


61

ทำไม 6 จึงกลัว 7 เพราะ 7 8 9!

รับสตริงใช้การแปลงต่อไปนี้:

  • หากมี 6 ติดกับ 7 ลบ 6 (6 คือกลัว 7)
  • หากลำดับ "789" ปรากฏขึ้นให้ลบ 8 และ 9 (7 ate 9)

(ถ้าฉันไม่เข้าใจผิดมันไม่สำคัญว่าคุณจะสั่งให้แปลงอะไร)

ใช้การแปลงต่อไปเรื่อย ๆ จนกว่าคุณจะไม่สามารถทำได้อีกต่อไป

ตัวอย่าง:

78966

ก่อนอื่นเราจะเห็น "789" ดังนั้นสตริงจะกลายเป็น "766" จากนั้นเราจะเห็น "76" เราจึงนำ 6 ออกมาและสตริงกลายเป็น "76" จากนั้นเราจะเห็น "76" อีกครั้งดังนั้นเราจึงเหลือ "7"

กรณีทดสอบ:

  • 987=> 987(ไม่อยู่ในลำดับที่ถูกต้องไม่ทำอะไรเลย)
  • 6 7=> 6 7(ช่องว่างทำหน้าที่เป็นบัฟเฟอร์ระหว่าง 6 และ 7 ไม่มีอะไรเกิดขึ้น)
  • 676 => 7
  • 7896789 => 77
  • 7689 => 7
  • abcd => abcd

130
เหตุใด Vista จึงกลัว 7 เนื่องจาก 7 8 10.
lirtosiast

2
กรณีทดสอบอื่น68978966897896=>68977
แบรดกิลเบิร์ต b2gills

19
@ThomasKwa โอ้ฉันเข้าใจแล้ว: Microsoft ข้าม Windows 9 ไปเพราะพวกเขาไปพร้อมกับปริศนา ;)
ETHproductions

43
ทำไมเจ็ดจึงกลัวห้า เพราะหกเจ็ดแปด --Yoda
Jakuje

2
หกกลัวเจ็ดเพราะเจ็ดมีตาที่เย็นชาและตาย
Conor O'Brien

คำตอบ:



12

Javascript ES6, 29 ไบต์

s=>s.replace(/6*7(89|6)*/g,7)

ทดสอบ:

f=s=>s.replace(/6*7(89|6)*/g,7)
;`987 -> 987
6 7 -> 6 7
676 -> 7
7896789 -> 77
7689 -> 7
abcd -> abcd`
.split`\n`.every(t=>(t=t.split` -> `)&&f(t[0])==t[1])

12
ยอดเยี่ยมและเมื่อรับประทานครบ 9 คุณมีเพียง 2 ไบท์เท่านั้นและชนะด้วยคำตอบนี้: P
Pierre Arlaud

12

Java, 126 81 66 58 ไบต์

ขอบคุณ @GamrCorps ที่ให้รหัสรุ่นแลมบ์ดานี้!

ขอบคุณ @ user902383 สำหรับการชี้เคล็ดลับการออโต้บ็อกซ์!

...ได้.

จริง ๆ แล้วมันนานเกินกว่าที่ฉันคาดไว้ - Java แทนที่รายการในสตริงด้วยreplaceAll()หนึ่งครั้งต่อการแข่งขันไม่ซ้ำ ๆ จนกว่ามันจะหยุดการเปลี่ยนแปลง ดังนั้นฉันต้องใช้ความแฟนซีสำหรับการวนซ้ำ

แบบฟอร์มแลมบ์ดา:

x->{for(;x!=(x=x.replaceAll("67|76|789","7")););return x;}

ฟังก์ชั่นรูปแบบ:

String s(String x){for(;x!=(x=x.replaceAll("67|76|789","7")););return x;}

รหัส Ungolfed ที่ทดสอบได้:

class B{
    public static void main(String[]a){
        System.out.print(new B().s(a[0]));
    }
    String s(String x){for(;x!=(x=x.replaceAll("67|76|789","7")););return x;}
}

2
ทำไมไม่ไปกับแลมบ์ดา? จะบันทึกอย่างน้อย 15 ไบต์
GamrCorps

@GamrCorps ไม่รู้ว่าจะใช้วลีอย่างไร - อย่าใช้ฟังก์ชั่น
Addison Crump

1
จุดประสงค์ของอินเทอร์เฟซและไม่ใช่คลาสคืออะไร
eis

3
@eis Interface ทำให้ไม่จำเป็นต้องประกาศ main เป็น public ซึ่งให้ประโยชน์น้อยที่สุด ดู: codegolf.stackexchange.com/a/64713/44713
Addison Crump

1
@ user902383 การลดที่คุณทำคือการเปลี่ยน.equalsเป็น!=ซึ่งไม่ได้ทำสิ่งเดียวกัน ==(หรือ!=) เปรียบเทียบตามตำแหน่งฐานสิบหกของวัตถุไม่ใช่ตามค่า ความยาวเท่ากัน while()คือ 7 ไบต์for(;;)คือ 7 ไบต์
Addison Crump

9

GNU Sed, 17

คะแนนรวม +1 สำหรับ-rตัวเลือก

s/6*7(6|89)*/7/g

ไม่ได้ผล67789ควรกลับมา77แต่จะกลับมาอีก677
Brad Gilbert b2gills

1
คุณสามารถใช้ s/67|7(6|89)/7/แทนs/6?7(6|89)/7/
Brad Gilbert b2gills

1
Gee ฉันสงสัยว่า Larry คิดไอเดียs///gไหนดี?
Brad Gilbert b2gills

8

Perl 6 , 19  18 ไบต์

{S:g/6*7[6|89]*/7/} # 19 bytes

$ perl6 -pe 's:g/6*7[6|89]*/7/' # 17 + 1 = 18 bytes

(โปรดทราบว่า[6|89]เป็นรุ่นที่ไม่ใช่การจับภาพ(6|89)ซึ่งสะกด(?:6|89)ใน Perl 5 <[6|89]>เป็นวิธีที่คุณจะเขียนสิ่งที่สะกด[6|89]ใน Perl 5)

ใช้:

$ perl6 -pe 's:g/6*7[6|89]*/7/' <<< '
987
6 7
6676689
7896789
7689
abcd
68978966897896
79|689
'
987
6 7
7
77
7
abcd
68977
79|689

ฉันไม่รู้ Perl 6 แต่ฉันคิดว่านี่เป็นการทดแทนซ้ำ หาก6*และ[6|89]*สิ่งที่ไม่ตรงกับสิ่งใดสิ่งใดจะหยุด7การทดแทน7infinitum โฆษณา
Digital Trauma

2
@DigitalTrauma มันสลับ7กับ7จากนั้นเริ่มอีกครั้งในตำแหน่งถัดไปทำงานจนจบ :gสั้นสำหรับไม่:global repeat until it doesn't match anymore
Brad Gilbert b2gills

1
@ DigitalTrauma หากต้องการs/67|76|789/7/ทำงานกับ667ฉันจะต้องเขียนมันเป็นสิ่งที่มีผลต่อ: while s/67|76|789/7/ {}แน่นอนซึ่งจะไม่หยุดถ้าคุณเขียนมันตามwhile s/6*7[6|89]*/7/ {}ที่คุณคาดหวัง ท้ายที่สุดของความคิดเห็นก่อนหน้าอาจออกมาเป็นใจกล้านั่นไม่ใช่วิธีการที่มันถูก
ขัง

1
ไม่ควร[]เปลี่ยนเป็น()? 79999คุณไม่ต้องการให้ตรงกับท่อหรือ
jwodder

1
@ jwodder ไม่[]เป็นรุ่นที่ไม่ใช่จับของ Perl 6 (), สิ่งที่คุณกำลังคิดว่าจะสะกดเหมือน<[6|89]>ใน Perl 6
Brad Gilbert b2gills



4

Mathematica, 52 ไบต์

StringReplace[#,"67"|"76"|"789"->"7"]&~FixedPoint~#&

คำอธิบาย:

                                                   &   A function returning
                                     &                   a function returning
              #                                            its first argument
StringReplace[ ,                    ]                     with
                "67"                                        "67"
                    |                                      or
                     "76"                                   "76"
                         |                                 or
                          "789"                             "789"
                               ->                         replaced with
                                 "7"                       "7"
                                    ~FixedPoint~        applied to
                                                #        its first argument
                                                        until it no longer changes.

8
รหัสแข็งแรงเล่นกอล์ฟเป็นที่ชัดเจนกว่ารหัสคำอธิบาย .. :)
ร็อบ

@ Rob ยังไม่ได้อธิบายอะไรมากมายมาก่อนเพื่อหาแนวทางที่เป็นระบบ
LegionMammal978

ฉันแค่ล้อเล่นเพื่อน ๆ :)
Rob

3

สนิม 96 ไบต์

fn f(mut s:String)->String{for _ in 0..s.len(){for r in&["67","76","789"]{s=s.replace(r,"7")}}s}

ยาวอย่างไร้ความหวังตามปกติสำหรับ Rust ...

Ungolfed:

fn seven_ate_nine(mut str: String) -> String {
    for _ in 0..str.len() {
        for to_replace in &["67","76","789"] {
            str = str.replace(to_replace, "7");
        }
    }
    s
}

อย่างน้อยก็ไม่ใช่ Java

3

Emacs Lisp, 59 ไบต์

(lambda(s)(replace-regexp-in-string"6*7\\(6\\|89\\)*""7"s))

มันจะกลายเป็นที่ชัดเจนยิ่งขึ้นด้วยช่องว่าง:

(lambda (s) (replace-regexp-in-string "6*7\\(6\\|89\\)*" "7" s))

3

Ruby, 27 ไบต์

วิธีการแก้ปัญหานี้เป็นจากความคิดเห็นเครดิตกับb2gills แบรดกิลเบิร์

->s{s.gsub /6*7(6|89)*/,?7}

Ruby, 37 ไบต์

(สารละลายเก่า)

วิธีการแก้ปัญหานี้ใช้ความจริงที่ว่าคุณไม่จำเป็นต้องแทนที่เวลามากกว่าตัวอักษรในสตริง

->s{s.chars{s.sub! /67|76|789/,?7};s}

คุณสามารถใช้charsแทนsize.timesการบันทึกไม่กี่ไบต์
Doorknob

Ruby ไม่มีการตั้งค่าสถานะส่วนกลางสำหรับการทดแทน regex หรือว่าจะต้องใช้ไบต์เพิ่มเพื่อเปิดใช้งานหรือไม่
Brad Gilbert b2gills

@ BradGilbertb2gills ใน Ruby เป็นเหมือน Awk: มีแยกต่างหากsub()และgsub()วิธีการแทนที่ก่อนหรือทั้งหมด ดังนั้นทั่วโลกจึงเป็นเพียงตัวละครอีกตัวหนึ่ง
จัดการ

1
@ การจัดการจากนั้นฉันจะเขียนสิ่งนี้เช่น: ->s{s.gsub /6*7(6|89)*/,'7'}และให้gsubทำงานวนซ้ำทั้งหมด
Brad Gilbert b2gills

หากฉันเข้าใจกฎของการตั้งค่าสถานะบรรทัดคำสั่งอย่างถูกต้องคุณสามารถบันทึก 16 ไบต์โดยใช้การตั้งค่าสถานะบรรทัดคำสั่ง -p (+1) ทำให้gsub /6*7(6|89)*/,?7มีการใช้งานruby -pe "gsub /6*7(6|89)*/,?7"รวม 20 + 1 ไบต์
Alexis Andersen


2

PowerShell ขนาด 27 ไบต์

$args-replace'6*7(89|6)*',7

e.g.
PS C:\temp> .\ate.ps1 "7689"
7

PS C:\temp> .\ate.ps1 "abcd"
abcd

PS C:\temp> .\ate.ps1 "68978966897896"
68977

การใช้ประโยชน์จาก:

  • รูปแบบ regex ของคนอื่น
  • วิธี-replaceการแทนที่แบบโกลบอลตามค่าดีฟอลต์ใน PowerShell
  • คลี่วงที่มันจะนำไปใช้-regexประกอบการอาร์เรย์$argsโดยนำไปใช้กับทุกองค์ประกอบที่ไม่ซ้ำกันและมีเพียงองค์ประกอบหนึ่งที่นี่เพราะมีเพียงหนึ่งพารามิเตอร์สคริปต์จึงทำงาน OK [0]และเราสามารถหลีกเลี่ยงการองค์ประกอบดัชนี

ความพยายามก่อนหน้านี้แปลกใหม่ก่อนที่จะตระหนักถึงการแทนที่ระดับโลกจะทำมัน; 74 ไบต์ของการสร้างเชนของ "-replace -replace -replace" โดยใช้การคูณสตริงหลาย ๆ ครั้งตามความยาวของสตริงจากนั้น eval () ing:

"'$($args)'"+("{0}6|6(?=7)'{0}89'"-f"-replace'(?<=7)")*$args[0].Length|iex

(ด้วยการแทนที่สตริงเล็กน้อยเพื่อย่อจำนวนการแทนที่)


2

CJam, 70 64 ไบต์

ขอขอบคุณที่ @ Peter เทย์เลอร์สำหรับการตัด{"789":I}{"76:":I}?ไป"789""76"?:I

"67":Iq:A{AI#:B){AB<7+A{BI,+}~>+s:A];}{"76"I={"789":I}{"76":I}?];}?}/A

"67":Iq:A{AI#:B){AB<7+A{BI,+}~>+s:A];}{"76"I="789""76"?:I];}?}/A

ฉันรู้ว่านี่อาจจะมีการตีกอล์ฟมากขึ้นและความช่วยเหลือของคุณจะได้รับการชื่นชมอย่างมาก แต่ตรงไปตรงมาฉันแค่ดีใจที่ฉันได้รับคำตอบ นี่เป็นความพยายามครั้งแรกของฉันในการเขียน CJam

คำอธิบาย:

"67":I                e# Assign the value of 67 to I
q:A                   e# Read the input and assign to A
{                     e# Opening brackets for loop
    AI#:B)            e# Get the index of I inside A and assign to B. The increment value by 1 to use for if condition (do not want to process if the index was -1)
    {                 e# Open brackets for true result of if statement
        AB<           e# Slice A to get everything before index B
        7+            e# Append 7 to slice
        A{BI,+}~>     e# Slice A to get everything after index B plus the length of string I (this will remove I entirely)
        +s:A          e# Append both slices, convert to string, and assign back to A
        ];            e# Clear the stack
    }                 e# Closing brackets for the if condition
    {                 e# Open brackets for false result of if statement
        "76"I=        e# Check if I is equal to 76
        "789"         e# If I is 76, make I 789
        "76"?:I       e# If I is not 76, make I 76
        ];            e# Clear the stack if I does not exist inside A
    }?                e# Closing brackets for false result of if statement
}/                    e# Loop
A                     e# Output A

ฉันไม่ได้พยายามที่คำถามนี้กับตัวเองดังนั้นผมไม่แน่ใจว่านี้เป็นวิธีที่ดีที่สุด แต่ถ้าคุณต้องการที่จะทำแยกและเข้าร่วมนั้นจะดูที่และ/ *นอกจากนี้โปรดทราบว่าการคิดในแง่ของสแต็คเมื่อคุณคุ้นเคยกับภาษาแบบ C จะต้องมีการปรับตัวบ้าง เช่น{"789":I}{"76":I}?สามารถดึงการมอบหมายให้กลายเป็น"789""76"?:Iซึ่งสามารถนำไปเล่นกอล์ฟต่อไป78976`3/?:Iได้
Peter Taylor

ขอขอบคุณ! อย่างไรก็ตามฉันไม่เข้าใจวิธีการใช้ข้อเสนอแนะที่สองของคุณ
Conrad Crates

ขอโทษที่ฉันทำผิด 78976`3/ให้อาร์เรย์["789" "76"]; จากนั้นแทนที่จะใช้?คุณจะต้องใช้=ดัชนี แต่มันกลับไปข้างหน้าดังนั้นมันจะต้องมีดัชนีที่จะกลับหัวกลับหางสูญเสียความได้เปรียบ
Peter Taylor

2

MATL , 17 ไบต์

jt"'789|76'55cYX]

ตัวอย่าง

>> matl
 > jt"'789|76'55cYX]
 > 
> 7896789
77

แก้ไข : ลองออนไลน์!

คำอธิบาย

j                   % input string
t                   % duplicate
"                   % for each character. Iterates as many times as the string length
    '789|76'        % regular expression for replacement
    55c             % string to insert instead: character '7'
    YX              % regexprep
]                   % end for

นี้ทำงานโดยการใช้ทดแทน expresion ปกติสำหรับหลายครั้งเท่าที่มีตัวละครในสตริงเดิม เพียงพอแล้วเนื่องจากการทดแทนแต่ละรายการจะลดจำนวนอักขระลง


1

อย่างจริงจัง 29 ไบต์

,;l`'7;;"67"(Æ"76"(Æ"789"(Æ`n

"6789"จะเข้าเป็นสตริงที่ยกมาสองครั้งเช่น ลองออนไลน์ (คุณจะต้องอ้างข้อความด้วยตนเอง)

คำอธิบาย:

,;l`'7;;"67"(Æ"76"(Æ"789"(Æ`n
,;l                            get input and push its length (we'll call it n)
   `                       `n  call the following function n times:
    '7;;"67"(Æ                   replace all occurrences of "67" with "7"
              "76"(Æ             replace all occurrences of "76" with "7"
                    "789"(Æ      replace all occurrences of "789" with "7"

1

มีขนาด 26 ไบต์

67::=7
76::=7
789::=7
::=

รวมถึงการขึ้นบรรทัดใหม่

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


ฉันไม่คิดอย่างนั้น หากคุณมีวิธีการ STDOUT คุณต้อง ขออภัย!

ใช่มันได้รับอนุญาตตาม meta post
geokavel

1

Bash, 102 82 67 (+7)? ไบต์

รุ่น extglob

x=$1
while v=${x/@(76|67|789)/7};[ $v != $x ];do x=$v;done
echo $v

bash -O extglob 789.sh 6567678989689789656นี้มีความหมายที่จะใส่ในไฟล์และเรียกว่ามีเช่น The (+7)? ไบต์สำหรับถ้าตัวเลือก extglob นับเป็นไบต์

ขอบคุณ @BinaryZebra สำหรับการชี้คุณสมบัติ extglob!


รุ่นที่ไม่ใช่ Extglob (82 ไบต์)

x=$1
while v=${x/76/7};v=${v/67/7};v=${v/789/7};[ $v != $x ];do x=$v;done
echo $v

./789.sh 65678989656นี้มีความหมายที่จะใส่ในไฟล์และเรียกว่ามีเช่น

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


ยินดีต้อนรับสู่ PPCG!
Mego

@BinaryZebra Ah ขอบคุณสำหรับ@()ไวยากรณ์ ฉันรู้ว่าจะต้องมีวิธีการรวมเหล่านั้น และ @Mego ขอบคุณสำหรับการต้อนรับ!
Pooping

1

R, 35 ไบต์

cat(gsub("6*7(6|89)*",7,scan(,"")))

ฉันไม่รู้ว่าฉันสามารถใช้gsubวิธีนี้ขอบคุณมากสำหรับคำตอบทุกคำตอบที่ทำให้ฉันเรียนรู้สิ่งใหม่


0

PHP 51 ตัวอักษร

while($s!=$r=str_replace([789,67,76],7,$s)){$s=$r;}

กรณีทดสอบเขียนในมือยาว

$s = '78966';
while ($s != $r = str_replace([789, 67, 76], 7, $s) )
{
    $s = $r;
}
echo $s; // 7;

นี่เป็นการเปรียบเทียบสตริงและสตริงแทนที่ทั้งสองในเงื่อนไข while หากตรงตามเงื่อนไขในขณะนั้นก็จะอัพเดตมือซ้ายของการเปรียบเทียบกับผลลัพธ์ แจ้งให้เราทราบถึงการปรับปรุงใด ๆ



0

PHP, 36 ไบต์

preg_replace('/6*7(6|89)*/','7',$a);

โซลูชัน regex รับ $ string และแทนที่ด้วย expression


พารามิเตอร์ GET ไม่เป็นที่ยอมรับในฐานะที่เป็นวิธีการป้อนข้อมูลใน PHP คุณจะต้องทำให้ฟังก์ชั่นนี้และส่งผ่านการป้อนข้อมูลเป็นพารามิเตอร์ฟังก์ชั่นหรือรับข้อมูลจาก$argvหรือ STDIN
Mego

@Mego ดูเหมือนจะไม่มีฉันทามติในโพสต์ที่คุณเชื่อมโยงกับ
253751

@ ถูกต้องถูกต้อง ฉันทามติจะต้องทำให้วิธีการ I / O เป็นที่ยอมรับ ขาดหนึ่งหมายความว่ามันไม่เป็นที่ยอมรับ
Mego

TL; DR คุณมีข้อเสียร้ายแรงหากคุณใช้ PHP เป็น codegolf
HamZa

0

Clojure, 71 ไบต์

Clojure น้อยกว่าที่เหมาะสำหรับการเล่นกอล์ฟเนื่องจากธรรมชาติ verbose - แต่อย่างไรก็ตามมันเป็นออกกำลังกายที่น่าสนใจ:

รุ่น Golfed โดยใช้ Java interop:

(defn f[s](let[x(.replaceAll s "67|76|789" "7")](if(= s x)s(recur x))))

รุ่นที่ไม่ตีกอล์ฟโดยใช้ Java interop:

(defn six-fears-seven [s]
  (let [x (.replaceAll s "67|76|789" "7")]
    (if (= s x)
      s
      (recur x))))

รุ่น "Pure Clojure" ที่ไม่ตีกอล์ฟ:

(defn six-fears-seven [s]
  (let [x (clojure.string/replace s #"67|76|789" "7")]
    (if (= s x)
      s
      (recur x))))

0

/// , 19 ไบต์ (ไม่แข่งขัน)

/67/7//76/7//789/7/

คุณไม่สามารถป้อนข้อมูลเป็นภาษานี้ได้ดังนั้นข้อมูลที่ป้อนควรไปทางด้านขวาของรหัส


โปรดทราบว่าItflabtijtslwiเป็นสแลช แต่มีอินพุต
FryAmTheEggman

แม้ว่า @FryAmTheEggman ว่าหนึ่งในปัจจัยการผลิตตัวอักษรไม่สตริง
Erik the Outgolfer

ดูเหมือนว่าลิงก์ของคุณจะขาดหนึ่งสแลช
Delioth


0

Japt v2.0a0, 12 ไบต์

e/6?7(6|89/7

ลองออนไลน์!

มันทำงานอย่างไร

String.eฟังก์ชั่นแทนที่ซ้ำ Japt 2 มีไวยากรณ์ใหม่ของ regex และการเติมวงเล็บอัตโนมัติภายใน regex ซึ่งบันทึกหนึ่งไบต์ที่นี่ (ใน Japt 1.x เราต้องผ่านสายแทนที่ regexes ซึ่งเป็น clunky kinda.)


0

Dyalog APLขนาด 17 ไบต์

'6*7(6|89)*'⎕R'7'

'6*จำนวนใด ๆ ที่แตกต่างกัน
7 ตามด้วยเจ็ด
(... )*' ตามด้วยศูนย์หรือมากกว่านั้นลำดับของ ...
6|89 หกหรือแปดเก้า

⎕RR eplace ว่า

'7' เจ็ด


0

05AB1E , 12 ไบต์

Δ67‚7:789¬:

ลองมันออนไลน์หรือตรวจสอบกรณีทดสอบทั้งหมด

คำอธิบาย:

Δ               # Continue doing the following until it no longer changes:
 67             #  Push 67 to the stack
   Â            #  Bifurcate (short for Duplicate & Reverse); which pushes 76 to the stack
               #  Pair them up
     7:         #  Replace all occurrences of 67 or 76 with 7 in the (implicit) input
                #   i.e. 17893762 → 1789372
       789      #  Push 789 to the stack
          ¬     #  Take the head (without popping); which pushes 7 to the stack
           :    #  Replace all 789 with 7
                #   i.e. 1789372 → 17372
                # (And implicitly output the result after the loop)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.