FizzBuzz นั้นง่ายมากคุณสามารถเดิมพันย้อนหลังได้ ในการท้าทายนี้คุณจะได้รับความยาวของสตริง FizzBuzz และจะต้องให้จำนวนเต็มบวกที่สร้างสตริงนั้น
ลักษณะ
ในการแยกส่วนนี้สตริง FizzBuzz สำหรับnจะถูกสร้างขึ้นโดยอัลกอริทึมต่อไปนี้
เริ่มต้นด้วยสตริงว่างและสำหรับทุกi=1..n(รวม):
- ถ้า
iหารด้วย3และโดยการ5ผนวกFizzBuzzสตริง - หาก
iเป็นเพียงหารด้วยผนวก3Fizz - หาก
iเป็นเพียงหารด้วยผนวก5Buzz - ถ้าหารด้วยค่าผนวกแทนทศนิยมของ
ii
ตัวอย่างเช่นFizzBuzz(15)มีดังต่อไปนี้:
12Fizz4BuzzFizz78FizzBuzz11Fizz1314FizzBuzz
คุณจะได้รับและจะต้องตรวจสอบLength(FizzBuzz(n)) nคุณอาจสันนิษฐานว่าอินพุตนั้นเป็นค่าบวกและจะเป็นความยาวของสตริง FizzBuzz บางตัวเสมอ
กฎระเบียบ
โซลูชันของคุณอาจเป็นโปรแกรมที่สมบูรณ์หรือคำนิยามฟังก์ชันในภาษาที่ยอมรับได้มาตรฐานใด ๆ โปรแกรมของคุณ / ฟังก์ชั่นอาจจะใช้เวลาในการขัดแย้งและกลับคำตอบใด ๆ ในทางที่ได้รับการยอมรับ standardly ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
คุณอาจคิดว่าอินพุตนั้นเป็นค่าบวกและถูกต้อง (อธิบายถึงความยาวของสตริง FizzBuzz บางอัน) และมีขนาดเล็กกว่าจำนวนเต็มที่มากที่สุดซึ่งสามารถแสดงได้ในภาษาของคุณ
นี่คือรหัสกอล์ฟเพื่อชัยชนะที่สั้นที่สุดนับไบต์
ตัวอย่าง
นี่คือตัวอย่างบางกรณี
Length(FizzBuzz(n)) -> n
1 -> 1
6 -> 3
15 -> 6
313 -> 100
3677 -> 1001
แก้ไข
แก้ไขกรณีทดสอบล่าสุด ขอบคุณ @SteadyBox