Bài tập
Phần bổ sung, phần bổ sung được xác định theo cách đệ quy, như thế này
- a (1) = 1
- a (n) = a (n-1) .n, nếu n chẵn
- a (n) = na (n-1), nếu n là số lẻ
nơi đại diện cho một phép nối số nguyên.
Vì vậy, một vài thuật ngữ đầu tiên là: 1,12,312,3124,53124,531246,7531246,...
Đây là A053064 .
Nhiệm vụ của bạn là, đưa ra một số nguyên a> 0 để trả về n , sao cho phần tử thứ n trong phần bổ sung, phần bổ sung-Sequence bằng a và nếu không có n như vậy tồn tại trả về 0, một số âm hoặc lỗi xuất hiện, v.v.
Quy tắc
- Đầu vào có thể được lấy dưới dạng số nguyên, chuỗi, danh sách các ký tự / chữ số, v.v.
- Đầu ra có thể được in thành STDOUT hoặc trả lại (số nguyên, chuỗi, v.v.
- Trên đầu vào không hợp lệ & trong trường hợp không tồn tại n như vậy, chương trình của bạn có thể làm bất cứ điều gì nhưng trả về một số nguyên dương (ví dụ: vòng lặp mãi mãi, trả về 0, v.v.)
- Bạn có thể chọn sử dụng lập chỉ mục 0, nhưng sau đó đầu ra trong trường hợp không tồn tại n không thể là 0
Các trường hợp thử nghiệm
1 -> 1
12 -> 2
21 -> 0
123 -> 0
312 -> 3
213 -> 0
211917151311975312468101214161820 -> 21
2119171513119753102468101214161820 -> 0
333129272523211917151311975312468101214161820222426283031 -> 0
999795939189878583817977757371696765636159575553514947454341393735333129272523211917151311975312468101214161820222426283032343638404244464850525456586062646668707274767880828486889092949698100 -> 100
a(n-1)*(int(log(n))+1)+n
vàn*(int(log(n))+1)+a(n-1)
?