คำสั่ง
เขียนโปรแกรมที่ได้รับการป้อนข้อมูลจำนวนเต็มn ( n >= 0
) ผลลัพธ์ที่ได้มีขนาดเล็กที่สุดจำนวนเต็มบวก เมตรที่:
n = a[1]^b[1] + a[2]^b[2] + a[3]^b[3] + ... + a[k]^b[k]
a
และb
เป็นลำดับที่มีความยาวเท่ากัน- องค์ประกอบทั้งหมดของ
a
น้อยกว่าm
- องค์ประกอบทั้งหมดของ
b
น้อยกว่าm
- องค์ประกอบทั้งหมดของ
a
มีที่แตกต่างกันและจำนวนเต็มa[x] >= 0
- องค์ประกอบทั้งหมดของ
b
มีที่แตกต่างกันและจำนวนเต็มb[x] >= 0
a[x]
และb[x]
ไม่ใช่ทั้งคู่ 0 (ตั้งแต่ 0 ^ 0 ไม่แน่นอน)
นี่คือโค้ดกอล์ฟซึ่งมีจำนวนน้อยที่สุดที่จะชนะ
ตัวอย่าง
In 0 -> Out 1
Possible Sum:
In 1 -> Out 2
Possible Sum: 1^0
In 2 -> Out 3
Possible Sum: 2^1
In 3 -> Out 3
Possible Sum: 2^1 + 1^0
In 6 -> Out 4
Possible Sum: 2^2 + 3^0 + 1^1
In 16 -> Out 5
Possible Sum: 2^4
In 17 -> Out 4
Possible Sum: 3^2 + 2^3
In 23 -> Out 6
Possible Sum: 5^1 + 3^0 + 2^4 + 1^3
In 24 -> Out 5
Possible Sum: 4^2 + 2^3
In 27 -> Out 4
Possible Sum: 3^3
In 330 -> Out 7
Possible Sum: 6^1 + 4^3 + 3^5 + 2^4 + 1^0
m<2
แล้วm<3
แล้วm<4
ฯลฯ n
จนกว่าฉันจะหาผลรวมที่เท่าเทียมกัน นอกจากนี้ฉันคิดว่าการมีผลรวม0
ไม่มีเงื่อนไข แต่แล้วผลลัพธ์คืออะไร m>
n = a[1]^b[1] + a[2]^b[2] + ... + a[k]^b[k]
คุณมักจะทำสิ่งที่ชอบ
a
และb
เป็นลำดับที่มีความยาว0
ดังนั้นจึงไม่มีจำนวนเต็มที่m
ไม่ตรงตามข้อ จำกัด และเนื่องจากไม่มีจำนวนเต็มที่น้อยที่สุดคำตอบจึงไม่ได้ถูกกำหนด การแก้ไขที่เป็นไปได้ที่จะถามหาจำนวนธรรมชาติที่เล็กที่สุดm
(ในกรณีที่คุณควรเปลี่ยนคำตอบที่คาดว่าจะมีการให้0
) m
หรือจำนวนเต็มบวกที่มีขนาดเล็กที่สุด