Hardcoding the Cops and Robbers (Cops)


28

นี่เป็นความท้าทายของด้ายโจรเป็นที่นี่

คำถามที่น่าสนใจที่ต้องคำนึงถึงมีดังนี้:

หากฉันมีลำดับตัวเลขฉันต้องระบุจำนวนเท่าไรก่อนที่จะชัดเจนว่าฉันกำลังพูดถึงลำดับใด

ตัวอย่างเช่นถ้าฉันต้องการพูดคุยเกี่ยวกับจำนวนเต็มบวกตามลำดับเริ่มต้นที่ฉันสามารถพูดได้แต่นั่นก็เพียงพอแล้วจริงหรือ1 , 2 , 3 , ...11,2,3,

ฉันมีวิธีหนึ่งในการตอบคำถามนี้และการเป็นนักกอล์ฟที่เกี่ยวข้องกับ code-golf คุณได้ให้เงื่อนไขของลำดับที่เพียงพอหากรหัสที่สั้นที่สุดที่สร้างคำเหล่านั้นสร้างเงื่อนไขทั้งหมดของลำดับ ถ้าเราคิดถึงเรื่องนี้ในเรื่องของ code-golf นี่ก็หมายความว่าคุณได้เตรียมเคสทดสอบไว้เพียงพอแล้วว่ารหัสสั้นที่สุดที่ผ่านการทดสอบจะเป็นงานที่ต้องการ

ท้าทาย

ความท้าทายนี้เป็นท้าทาย ในกรณีที่ตำรวจจะนำเสนอกรณีทดสอบและโจรจะต้องหาวิธีที่สั้นกว่าในการหลอกกรณีทดสอบอื่น ๆ นอกเหนือจากลำดับที่ตั้งใจไว้ ตำรวจจะนำเสนอสิ่งต่อไปนี้:

  • ชิ้นส่วนของรหัสที่ใช้จำนวนเต็มไม่เป็นลบเป็นอินพุตและสร้างจำนวนเต็มเป็นผลลัพธ์ รหัสนี้จะกำหนดลำดับของคุณ รหัสของคุณไม่จำเป็นต้องรองรับ 0 เป็นอินพุตโดยเลือกใช้ 1 เป็นอินพุตที่เล็กที่สุดแทน ควรชัดเจนว่าเป็นกรณีนี้ในคำตอบของคุณ

  • ข้อกำหนดแพลตฟอร์มหรือภาษาที่เกี่ยวข้องใด ๆ ที่อาจมีผลต่อเอาต์พุตตัวอย่างเช่นขนาดของ longint

  • จำนวนพร้อมกับครั้งแรกแง่ของการลำดับตามที่คำนวณได้จากรหัส สิ่งเหล่านี้จะทำหน้าที่เป็น "กรณีทดสอบ"nnn

คุณได้รับการสนับสนุนให้อธิบายสิ่งที่ลำดับของคุณทำและเชื่อมโยง OEIS หากมีอยู่อย่างไรก็ตามเป็นรหัสของคุณที่กำหนดลำดับไม่ใช่คำอธิบาย

โจรจะค้นหาโปรแกรมในภาษาเดียวกันที่สั้นกว่าที่นำเสนอและผ่านกรณีทดสอบทั้งหมด (สร้างเอาต์พุตเดียวกันสำหรับอินพุตแรกเป็นรหัสของตำรวจ) รหัสโม่งก็ต้องแตกต่างกันในการส่งออกจากโปรแกรมของตำรวจสำหรับจำนวนบางส่วนมีขนาดใหญ่กว่าnnnn

ตำรวจต้องสามารถถอดรหัสคำตอบของตนเองก่อนส่งได้

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

เกณฑ์การให้คะแนน

คำตอบของตำรวจจะได้คะแนนตามจำนวนไบต์ที่มีจำนวนไบต์น้อยกว่าดีกว่า คำตอบที่แตกจะให้คะแนนเป็นอนันต์


เห็นได้ชัดว่ามีวิธีในการยกเลิกปัญหาทางคณิตศาสตร์เช่นการพิมพ์กรณีทดสอบทั้งหมด แต่ปัญหานั้นเป็นเงื่อนไขในกรณีที่ตำรวจให้ ควรมีกฎเกี่ยวกับเรื่องนั้นหรือไม่? มีข้อ จำกัด ต่อความสามารถในการคำนวณของลำดับหรืออะไรก็ตามจากทฤษฎีแรมซีย์? (เช่นคุณจำเป็นต้องสามารถแตกบนเครื่องของคุณหรือไม่)
theREALyumdub

2
@TheReallyumdub คำถามกำหนดคุณจะต้องสามารถแตกส่งของคุณเอง
ข้าวสาลีตัวช่วยสร้าง

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


มี "แม้ว่าในทางทฤษฎีโซลูชันของคุณจะต้องทำงานกับตัวเลขทั้งหมดในทางปฏิบัติมันต้องทำงานเพื่อ ... " เท่านั้น?
user202729

คำตอบ:


6

cQuents , 4 ไบต์ ( แตกแล้ว )

"::$

ลองออนไลน์!

ที่นี่มีแปดn=8กรณี( ):

1 1
2 12
3 123
4 1234
5 12345
6 123456
7 1234567
8 12345678

คำอธิบายรหัส:

"      Stringify sequence (join on "", remove it and see what happens)
 ::    Given input n, output all items in the sequence up to and including n
   $   Each item in the sequence equals the index

ดังนั้นลำดับคือ1,2,3,4,5 ...มันถูกรวมเข้าด้วยกัน""ดังนั้นมันจึงกลายเป็น12345 ...และ::หมายความว่ามันพิมพ์ไปที่อินพุต



5

Python 3 , 66 57 ไบต์ ( แตก )

แตกโดยxnor และ
ยังแตกโดยCat Wizardก่อนการแก้ไข

def f(n):x=n/10-2;return int(x*60-x**3*10+x**5/2-x**7/84)

ลองออนไลน์!

สวัสดี! นี่คือลำดับที่จะแตกสำหรับnมันให้องค์ประกอบ 40 ตัวแรกที่มีการจัดทำดัชนี 0 ไม่ใช่ลำดับ OEISn=40

[-54, -56, -58, -59, -59, -59, -59, -57, -55, -53, -50, -46, -43, -38, -33, -28, -23, -17, -11, -5, 0, 5, 11, 17, 23, 28, 33, 38, 43, 46, 50, 53, 55, 57, 59, 59, 59, 59, 58, 56]

ฉันลืมที่จะลบช่องว่างฉันยังไม่ได้เป็นนักกอล์ฟผู้เชี่ยวชาญ: p คุณรังเกียจไหมถ้าฉันแก้ไขเพื่อแก้ไข
crashoz

ไปข้างหน้าแน่นอน ฉันจะลบรอยแตกของฉัน
ข้าวสาลีตัวช่วยสร้าง


5

Python 2 , 44 ไบต์ ( แตก )

f=lambda n,i=1,p=1:n and-~f(n-p%i,i+1,p*i*i)

ลองออนไลน์!

ตัวเลขสำคัญ ลำดับใดที่จะบริสุทธิ์? มากเกินไปหรือไม่ เป้าหมายของคุณคือการผลิต 50 จำนวนเฉพาะครั้งแรกสำหรับการn=1n=50

รหัสคือตัวกำเนิดทฤษฎีบทของวิลสันคัดลอกมาจากปลายนี้อย่างแน่นอน

ค่าที่แตกต่างกันสำหรับลำดับทางเลือกนั้นไม่ได้เกิดจากข้อ จำกัด ของเครื่องเช่นโอเวอร์โฟลว์และความแม่นยำ ไม่มีห้องสมุดบุคคลที่สาม


Crackedโดย Arnauld, @PoonLevi และนาย Xcoder


พริตตี้แน่ใจว่าคุณไม่ได้หมายความว่าจะได้รับการแตกจากนี้ ; อาจระบุ "Python (ที่ไม่มีไลบรารี่ของบุคคลที่สาม)" หรือ "Python (ที่ไม่มีอิมพอร์ต)" หรืออะไรบางอย่าง?
Jonathan Allan

@JanathanAllan ขอบคุณฉันแก้ไขแล้วว่าไม่มีห้องสมุดบุคคลที่สาม
xnor

ฉันยังไม่สามารถถอดรหัสได้ (ความพยายามที่ดีที่สุดของฉันในขณะนี้คือ 47 ไบต์หรือมากกว่านั้น) แต่ฉันคิดว่ามีบางสิ่งที่น่าสนใจที่จะทราบเกี่ยวกับช่วงเวลาพิเศษเหล่านั้น สำหรับแต่ละกับนี้ถือ:p_i) ในเวลาเดียวกันสิ่งนี้ไม่เป็นความจริงสำหรับหมายเลขใด ๆที่ไม่ได้เป็นนายก (ในช่วงที่ระบุไว้ข้างต้น) แต่จะทำเช่นนั้นสำหรับค่าที่สูงขึ้น ฉันปล่อยให้ความคิดนี้อยู่ที่นี่เพื่อให้คนอื่นลองใช้มือของตัวเองโดยใช้เทคนิคที่กล่าวถึงและอาจได้รับคะแนนที่ดีกว่า :) i [ 1 , 50 ] N 2 p i2 ( mod  p i )pii[1,50]N2pi2(mod pi)
นาย Xcoder

@ Mr.Xcoder นี่คือความพยายามที่ดีที่สุดของฉันตามวิธีการที่คุณเสนอ มันแยกความสำเร็จที่ N = 69, คืน 341 (pseudoprime แฟร์มาต์แรกไปยังฐาน 2 หรือหมายเลข Poulet แรก) แต่มันก็ล้มเหลวสำหรับ N = 1 ฉันสงสัยว่าฉันสามารถแก้ไขได้ด้วยตัวเองดังนั้นฉันคิดว่าฉันควรแบ่งปันสิ่งที่ฉันมี (การแก้ไขที่ดีที่สุดของฉันคือ 46 ไบต์ ... )
Arnauld

1
@Arnauld ฉันพบโซลูชัน 44 ไบต์โดยใช้วิธีนี้ ฉันไม่สามารถไปได้ไกลกว่านี้อีกแล้ว บางทีคนอื่นจะสามารถเข้าใจเรื่องนี้ได้
Poon Levi

4

ภาษา Wolfram (Mathematica) , 39 34 ไบต์ (ปลอดภัย)

Check[{1,9,7}[[#]],18+Boole[#>9]]&

ลองออนไลน์!

ดูง่ายวิธีแก้ปัญหาควรเป็นเรื่องยาก

1 จัดทำดัชนีและ99 ลำดับนี้ไม่สามารถใช้ได้กับ OEISn=99

{1, 9, 7, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19}

รายการด้านบนนี้เท่ากับ:

Join[{1, 9, 7}, Table[18, 6], Table[19, 90]]

นี่คือเทมเพลตสำหรับตรวจสอบโซลูชันของคุณ: ลองออนไลน์!

รอยแตกที่ตั้งใจไว้

สิ่งที่จับได้คือผลผลิตเพิ่มขึ้น 1 เมื่อจำนวนหลักเพิ่มขึ้น 1 โดยมีข้อยกเว้นสำหรับสามคำแรก โซลูชันที่ต้องการมีส่วนเกี่ยวข้องกับการแปลงสตริง

ดังนั้นการอ่านเอกสารเกี่ยวกับการแปลงระหว่าง Expressions & Stringทำให้สามารถค้นหาฟังก์ชันSpokenStringได้

วิธีแก้ไขคือความยาวของนิพจน์สายอักขระของนิพจน์x^nสำหรับอินพุตต่าง ๆ :StringLength@SpokenString[x^#]&


3

Haskell , 29 ไบต์ (แคร็ก: 1 , 2 )

a n=n*ceiling(realToFrac n/2)

ลองออนไลน์!

นี่คือA093005 :\a(n)=nn2

กรณีทดสอบสำหรับนั่นคือ:0n20map a [0..20]

[0,1,2,6,8,15,18,28,32,45,50,66,72,91,98,120,128,153,162,190,200]

โซลูชันที่ตั้งใจ (20 ไบต์)

b n=sum$n<$show(3^n)

ลองออนไลน์! แตกต่างกันที่กับและ253n=23a(23)=276b(23)=253

ฟังก์ชั่นนี้จะเทียบเท่ากับlog_ ต้องขอบคุณเพดานทั้งสองฟังก์ชันซ้อนทับกันสำหรับอาร์กิวเมนต์จำนวนเต็มในช่วงตั้งแต่ถึง :b(n)=n len(3n)=nlog10(1+3n)022

แหล่ง



@Laikoni ถ้ารอยแตกที่ตั้งใจไว้สั้นกว่าคนอื่นอาจอ้างสิทธิ์โจรจาก BMO
fəˈnɛtɪk

@ fəˈnɛtɪk ขอบคุณฉันไม่ได้ตระหนักถึงกฎนี้
Laikoni


2
@BMO ไปแล้ว :)
Laikoni

2

JavaScript (ES6), 12 ไบต์ ( แตกแล้ว )

อันนี้ค่อนข้างง่าย

n=>n*(8*n+1)

ลองออนไลน์!

นี่คือA139275 :

a(n)=n(8n+1)

รหัสของคุณต้องรองรับ :0n<9

0,9,34,75,132,205,294,399,520

และตามกฎการท้าทายมันจะต้องแตกต่างออกไป


n=>8*n*n+nข้อแตกต่างn=94906273นี้เป็นรอยแตกที่ใช้ได้หรือไม่
ngn

@ngn มันดูมีเหตุผลสำหรับฉันตามกฎท้าทาย แต่บางทีคุณควรถาม OP ว่าการสูญเสียความแม่นยำนับเป็นความแตกต่างที่ถูกต้องหรือไม่? แม้ว่ารอยแตกที่ตั้งใจแตกต่างกันn=9ไป
Arnauld

@CatWizard ^
NGN

ฉันจะบอกว่ามันเป็นรอยแตกที่ถูกต้อง
ข้าวสาลีตัวช่วยสร้าง

2
แคร็ก ( |แทน+)
ก.ย.


2

> <> , 276 ไบต์ ( แตกแล้ว )

1$1-:?!v$:      1[0$          >:?!va2[$:{:@%:{$-{,]v
       >$n; v              <  ^   >~{]02.1+1+ffr+1r<
 :}[r]{  [01>:{*@@+$a*l2=?!^~]+ff+9+1g"3"=?v"3"ff+9+1pf0.
 :}[l01-$>    $:0(?v$@$:@@:@)?v@@1-$}v     >"2"ff+9+1p00.
>.       ^-1l v!?} <  .4a}$@@$<   .4a<
^26{]r0[}:{]~{<

ลองออนไลน์! เรียกอันนี้ด้วย-v nเพื่อรับองค์ประกอบที่ n (1 ดัชนี)

1$1-:?!;$::n84*o1[0$          >:?!va2[$:{:@%:{$-{,]v
            v              <  ^   >~{]02.1+1+ffr+1r<
 :}[r]{  [01>:{*@@+$a*l2=?!^~]+ff+9+1g"3"=?v"3"ff+9+1pf0.
 :}[l01-$>    $:0(?v$@$:@@:@)?v@@1-$}v     >"2"ff+9+1p00.
>.       ^-1l v!?} <  .4a}$@@$<   .4a<
^26{]r0[}:{]~{<

ลองออนไลน์! โทรหา-v nเพื่อรับรายการองค์ประกอบ n-1 เริ่มต้นที่ 1

ล่ามปลาออนไลน์

หนึ่งยาวและซับซ้อนนี้เป็นOEIS A004000

ให้ a (n) = k, สร้าง m โดยการกลับตัวเลขของ k, เพิ่ม m เป็น k จากนั้นเรียงลำดับตัวเลขของผลรวมลงในลำดับที่เพิ่มขึ้นเพื่อรับ (n + 1)

ตัวอย่าง: 668 -> 668 + 866 = 1534 -> 1345

n=34

1 2 4 8 16 77 145 668 1345 6677 13444 55778 133345 666677 1333444 5567777 12333445 66666677 133333444 556667777 1233334444 5566667777 12333334444 55666667777 123333334444 556666667777 1233333334444 5566666667777 12333333334444 55666666667777 123333333334444 556666666667777 1233333333334444 5566666666667777

หนึ่งรันโปรแกรมเพื่อผลผลิตเดียวออกให้n(ตามที่กำหนดโดยคำถาม) ได้อย่างไร
Jonathan Allan

เนื่องจากไม่มี "ฟังก์ชั่น" ในปลาจริงๆฉันจึงเพิ่มรุ่นที่คุณสามารถโทรหาเพื่อรับ n-th (ซึ่งเป็นหลักเดียวกันเพราะต้องคำนวณองค์ประกอบก่อนหน้า n-1)
crashoz

ที่สำคัญกว่านี้คุณมีตัวถอดรหัสที่เหมาะกับการจัดทำดัชนีอินพุตเดียวกันซึ่งให้ผลลัพธ์เอาต์พุตเดี่ยวหรือไม่?
Jonathan Allan

1
1<=n<=34n>34


2

เยลลี่ , 6 ไบต์ , ปลอดภัย!

<4+ạ2ȯ

สิ่งนี้จะกำหนดลำดับที่ไม่มีดัชนีซึ่ง:

a(n)={1n<32n=3n2n>3

a(0)a(15)1,1,1,2,2,3,4,5,6,7,8,9,10,11,12,13

ลองออนไลน์! (นี่คือรุ่นที่มีค่าเดียว)

ขณะนี้ไม่ได้อยู่ใน OEIS (แม้ว่าA34138จะทำงานเป็นรอยแตกถ้าสั้นพอ)

รอยแตกที่ตั้งใจไว้

16n
17th1070045392852801514=a(16)

!ÆsDL


1

JavaScript ขนาด 26 ไบต์ ( แตกแล้ว )

let f=x=>x>1?f(x-1)*f(x-2)+1:1

for (x of [0,1,2,3,4,5,6,7]) {
  console.log(x + ' -> ' + f(x))
}

OEIS A007660

เอาต์พุตเป็นองค์ประกอบ 6 รายการแรกที่มีการทำดัชนี 0 รายการ (1,1,2,3,7,22)

(ค่อนข้างเปลี่ยนจากสิ่งที่ OEIS ระบุไว้เป็น)

เพียงแค่สร้างคำตอบง่ายๆเพื่อแก้ปัญหา

ลองออนไลน์!


Cracked
Mr. Xcoder

ตัวอย่างข้อมูลตัวอย่างของคุณเริ่มต้นที่ 1 ไม่ใช่ที่ 0
Paŭlo Ebermann

@ PaŭloEbermannแก้ไขที่
fəˈnɛtɪk

1

JavaScript ขนาด 16 ไบต์ ( แตกแล้ว )

g=
x=>Math.exp(x)|0

tmp=[0,1,2,3,4]
console.log(tmp.map(g).join(','))

en

อินพุตที่จำเป็นในการจับคู่คือ 0,1,2,3,4

ลองออนไลน์!



1

APL (Dyalog Unicode)ขนาด17 15 ไบต์

⌈∊∘1 5+.633*5-⊢

ลองออนไลน์!

13 คำแรก (ตาม 1) คือ:

2 1 1 1 2 2 3 4 7 10 16 25 39

คำแนะนำ: โซลูชันที่ต้องการใช้หนึ่งในฟังก์ชั่นในตัวที่ใช้งานน้อยที่สุด



@ngn อัปเดตการส่งตำรวจ :)
Bubbler

1

Husk , 5 ไบต์ ( แตกโดยJonathan Allan )

16

←d+16

ลองออนไลน์!

0n<23

1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3

คำอธิบาย

←d+16  -- example input:  23
  +16  -- add 16:         39
 d     -- digits:         [3,9]
←      -- extract first:  3

วิธีการแก้

LdΣ



1

JavaScript ขนาด 25 ไบต์ ( แคร็ก 21 ไบต์)

f=
x=>[7,11,12,13,13][x]||14

for(i=0;i<15;i++)
  console.log(i+"->"+f(i))

ลำดับที่ 7,11,12,13,13 ตามด้วย 14 อนันต์

โซลูชันที่ตั้งใจ 22 ไบต์:

x = Math.atan (x + 1) * 10 | 0

ลองออนไลน์!



0

JavaScript ขนาด 22 ไบต์ ( แคร็ก )

f=
x=>(3-(5/63)**.5)**x|1

for(y=0;y<16;y++)
  console.log(y +"->"+f(y))

นี่คือดัชนี 0 และต้องการความแม่นยำสูงถึงอินพุต 15 ไม่สามารถพบได้ใน OEIS

โซลูชันของฉัน 20 ไบต์

x => 163 ** (32 * x / 163) | 1

ลองออนไลน์!



0

> <> , 42 ไบต์แตกแล้ว

i3%0v
642 .
840
789
159
a 1
v<<
n
l
?
\/
;

ลองออนไลน์!

ลำดับการถอดรหัส (ดัชนี 0): 101786, 5844, 19902(ไม่ใช่ OEIS)

โซลูชั่นที่ตั้งใจไว้สำหรับการอ้างอิง



โดยปกติแล้วโจรจะต้องเข้ารหัสอย่างหนักเอาท์พุท
โจคิง

@ โจกิ้งรอยแตกของคุณดูเหมือนจะไม่สร้างค่าใด ๆ ที่แตกต่างจากของฉัน (หรือบางทีฉันยังไม่ได้ทดสอบอย่างละเอียดพอที่จะหาค่าที่ต่างกัน) แต่นั่นอาจแก้ไขได้อย่างง่ายดาย ในขณะที่ดูเหมือนจะไม่มีอะไรในกฎสำหรับการเข้ารหัส hardcoding ฉันยอมรับว่ามันอาจไม่เหมาะกับวิญญาณของความท้าทาย - ในกรณีใด ๆ ที่คุณแสดงให้เห็นว่าการเข้ารหัส hardcoding (สำหรับตำรวจ) มีความเสี่ยงของตัวเอง
Aidan F. Pierce

1
ฉันได้อัปเดตคำตอบของฉันเพื่อสร้างคุณค่าที่แตกต่างสำหรับ4
Jo King

0

Perl 6 , 53 ไบต์

{(1,2,2,{$!=++$;prepend(@,2-$!%2 xx$_).pop}...*)[$_]}

ลองออนไลน์!

บล็อกโค้ดแบบไม่ระบุชื่อที่ส่งคืนลำดับ Kolakoski 0 ที่จัดทำดัชนี ( OEIS A000002 ) การแก้ปัญหาจำเป็นต้องมีเพื่อให้ตรงกับองค์ประกอบ 130 รายการแรกเพื่อให้บางอย่างn > 129แตกต่างจากลำดับ Kolakoski


0

Pascal (FPC) , 86 ไบต์ ( แตก )

var n:word;begin read(n);write(n div 2+n div 4+n div 8+n div 16+n div 32+n div 64)end.

ลองออนไลน์!

n=120

0   0   1   1   3   3   4   4   7   7   8   8  10  10  11  11  15  15  16  16  18  18  19  19  22  22  23  23  25  25  26  26  31  31  32  32  34  34  35  35  38  38  39  39  41  41  42  42  46  46  47  47  49  49  50  50  53  53  54  54  56  56  57  57  63  63  64  64  66  66  67  67  70  70  71  71  73  73  74  74  78  78  79  79  81  81  82  82  85  85  86  86  88  88  89  89  94  94  95  95  97  97  98  98 101 101 102 102 104 104 105 105 109 109 110 110 112 112 113 113 116


โซลูชันดั้งเดิมของฉันคือ

var n,i,s:word;begin read(n);i:=2;repeat s:=s+n div i;i:=i*2until i>n;write(s)end.

แต่ r_64 ทำให้ดียิ่งขึ้น !


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