请问我这程序有什么问题么?

#include
using namespace std;
double fa(int n);
int main()
{
int s = 0;
cin >> n;
double m = 1;
for (int i = 1; i <= n; i++)
s += fa(i);
cout <<"1!+2!+3!+...+n!"<< s << endl;
}

double fa(int n)
{
double m = 1;
for (int i = 1; i <= n; i++)
m *= i;
return 0;
std::cout << "Hello World!\n";
}

n没有定义f返回的不是m

n沒有定义,fa函数返回的是m,不是0

int main() {
    int s = 0,n;
    cin >> n;
    double m = 1;
    for (int i = 1; i <= n; i++)
        s += fa(i);
    cout <<"1!+2!+3!+...+n!="<< s << endl;
}

double fa(int n) {
    double m = 1;
    for (int i = 1; i <= n; i++)
        m *= i;
    return m;
}

int main()
{
    int s = 0,n;
    cin >> n;
    for (int i = 1; i <= n; i++)
        s += fa(i);
    cout <<"1!+2!+3!+...+n!"<< s << endl;
}

double fa(int n)
{
    int m = 1;
    for (int i = 1; i <= n; i++)
    m *= i;
    
    std::cout << "Hello World!\n";
return m;
}