#include <iostream>
using namespace std;
int fact(int n) {
    int m = 1;
    for(int i = 1;i<=n;i++){
        m*=i;
    }
    cout << m << endl;
}
int main(void) {
    int n;
    cin >> n;
    fact(n);
    
}

递归法:

#include <iostream>
using namespace std;
int fact(int n) {
    if(n==1) return 1;
    else {
        return n*fact(n-1);
    }
}
int main(void) {
    int n;
    cin >> n;
    int m = fact(n);
    cout << m << endl;
}