Hướng
Viết chương trình, cho một số nguyên đầu vào n ( n >= 0), xuất ra số nguyên dương m nhỏ nhất trong đó:
n = a[1]^b[1] + a[2]^b[2] + a[3]^b[3] + ... + a[k]^b[k]avàblà các chuỗi hữu hạn có cùng độ dài- tất cả các yếu tố của
aít hơnm - tất cả các yếu tố của
bít hơnm - tất cả các yếu tố
alà khác nhau và số nguyêna[x] >= 0 - tất cả các yếu tố
blà khác nhau và số nguyênb[x] >= 0 a[x]vàb[x]không phải là cả 0 (vì 0 ^ 0 là không xác định)
Đây là mã golf , vì vậy ít byte nhất sẽ thắng.
Ví dụ
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<3sau đó, m<4vv cho đến khi tôi tìm thấy một tổng bằng n. Ngoài ra, tôi nghĩ về việc có tổng 0không có điều khoản, nhưng sau đó đầu ra là gì? m>?
n = a[1]^b[1] + a[2]^b[2] + ... + a[k]^b[k].
avà blà các chuỗi có độ dài hữu hạn 0, do đó không có số nguyên mnào không thỏa mãn các ràng buộc và vì không có số nguyên nhỏ nhất nên câu trả lời không được xác định. Các cách khắc phục có thể là yêu cầu số tự nhiên nhỏ nhất m(trong trường hợp đó bạn nên thay đổi câu trả lời dự kiến ở đó 0) hoặc cho số nguyên dương nhỏ nhất m.