เพื่อเป็นเกียรติแก่ตัวแทนเท่าที่ฉันมีหลายชั่วโมงที่ผ่านมาเมื่อฉันคิดถึงความท้าทายนี้เป็นครั้งแรก:
เบอร์เช่นนี้ที่จะทำขึ้นของตัวเลขหลักเดียวซ้ำจะเรียกว่าrepdigits Repdigits สนุก! ร่างกายทุกคนจะมีความสุขมากขึ้นถ้าปริมาณของตัวแทนพวกเขามีความเป็น repdigit ¹แต่ผมใจร้อนดังนั้นคุณจึงจำเป็นที่จะช่วยฉันหาวิธีที่เร็วที่สุดที่จะได้รับ repdigit
นี่คือความท้าทายของคุณ:
รับจำนวนเต็มบวกที่เป็นตัวแทนของชื่อเสียงส่งออกจำนวนตัวแทนขั้นต่ำที่พวกเขาต้องการเพื่อรับไปยัง repdigit ตัวอย่างเช่นในขณะที่เขียนความท้าทายนี้ผู้ใช้Martin Enderมีตัวแทน 102,856 คน หมายเลขตัวแทนที่ใกล้ที่สุดคือ 111,111 ดังนั้นเขาจะต้องได้รับ: 8255 ตัวแทนจะต้องเป็น repdigit
เนื่องจากคนไม่ชอบการสูญเสียตัวแทนเราจะพิจารณาเฉพาะการเปลี่ยนแปลงที่ไม่เป็นลบ ซึ่งหมายความว่าตัวอย่างเช่นหากใครบางคนอยู่ที่ 12 ตัวแทนแทนที่จะเสีย 1 ตัวแทนโซลูชันจะได้รับ 10 ตัวแทน สิ่งนี้อนุญาตให้ '0' เป็นเอาต์พุตที่ถูกต้องเนื่องจากใครก็ตามที่มี 111 rep อยู่ที่ repdigit แล้ว
อินพุตและเอาต์พุตสามารถอยู่ในรูปแบบที่เหมาะสมและเนื่องจากเป็นไปไม่ได้ที่จะมีน้อยกว่า 1 ตัวแทนในไซต์ Stack Exchange ใด ๆ คุณจึงสามารถสรุปได้ว่าไม่มีอินพุตใดจะน้อยกว่า 1
หนึ่ง Cornercase ที่ควรทราบ:
หากผู้ใช้มีตัวแทนน้อยกว่า 10 คนพวกเขาจะอยู่ที่ repdigit อยู่แล้วดังนั้นพวกเขาจึงต้องการ '0'
ทดสอบ IO:
#Input #Ouput
8 0
100 11
113 109
87654321 1234567
42 2
20000 2222
11132 11090
มีช่องโหว่มาตรฐานใช้และทางออกที่สั้นที่สุดในหน่วยไบต์ชนะ!
110
ควรให้1
แม้ว่าจะไม่มีวิธีที่จะได้รับหนึ่งตัวแทน