양의 정수 n의 계승은 1*2*3*...n과 같습니다. 음수의 계승은 존재하지 않습니다. 여기에 동적 프로그래밍을 사용하여 주어진 입력의 계승을 찾는 C++ 프로그램이 제공됩니다.
알고리즘
Begin fact(int n): Read the number n Initialize i = 1, result[1000] = {0} result[0] = 1 for i = 1 to n result[i] = I * result[i-1] Print result End
예시 코드
#include <iostream> using namespace std; int result[1000] = {0}; int fact(int n) { if (n >= 0) { result[0] = 1; for (int i = 1; i <= n; ++i) { result[i] = i * result[i - 1]; } return result[n]; } } int main() { int n; while (1) { cout<<"Enter integer to compute factorial (enter 0 to exit): "; cin>>n; if (n == 0) break; cout<<fact(n)<<endl; } return 0; }
출력
Enter integer to compute factorial (enter 0 to exit): 2 2 Enter integer to compute factorial (enter 0 to exit): 6 720 Enter integer to compute factorial (enter 0 to exit): 7 5040 Enter integer to compute factorial (enter 0 to exit): 10 3628800 Enter integer to compute factorial (enter 0 to exit): 0