Tôi chỉ thực hiện (một lần nữa) một mẫu đệ quy để tính toán giai thừa của một số nguyên tại thời gian biên dịch (người đã nghĩ rằng một ngày nào đó tôi thực sự cần nó!). Tuy nhiên, thay vì lăn của riêng tôi, tôi đã đi đến Boost tìm kiếm câu trả lời. Tuy nhiên, chức năng giai thừa trong toán học đặc biệt đặc biệt cấm sử dụng nó với các loại số nguyên, vì vậy tôi chỉ viết của riêng tôi.Tính toán giai thừa của một số nguyên nhỏ tại thời gian biên dịch
Tuy nhiên, có chức năng nào khác trong Boost mà tôi nên sử dụng không? Tôi có nên truyền số nguyên của mình sang double
và sử dụng chức năng boost::factorial
không? Tính toán có được thực hiện tại thời gian biên dịch không?
Có độ sâu giới hạn mà tại đó mẫu có thể chấp nhận, vì vậy IRL tăng tốc từ tính toán giai thừa tại thời gian biên dịch không phải là tuyệt vời (đặc biệt nếu bạn sử dụng lập trình động). –
Xem câu trả lời "R .." trong câu hỏi này: http://stackoverflow.com/questions/3786207/howto-compute-the-factorial-of-x. Overflow là rất có thể lý do tại sao Boost không muốn bạn sử dụng một int cho việc này. – mwigdahl
@mwigdahl Tôi có thể phù hợp với tối đa 20! vào một int dài chưa ký mà nhiều hơn những gì tôi cần (tuy nhiên, việc kiểm tra tràn sẽ là một trong những lý do khiến tôi thích sử dụng chức năng thư viện hơn, việc triển khai của tôi không kiểm tra nó). – gnzlbg