如何用C++编写组合数程序

练习2-18
没有一点思路
有哪位大神帮帮

img

#include<iostream>
using namespace std;
double fact(double n)
{
    int res=1;
    for(int i=1;i<=n;i++)
        res*=i;
    return res;
}
int main()
{
    double n,m,ans;
    cin>>n>>m;
    ans=fact(n)/(fact(m)*fact(n-m));
    cout<<ans;
    return 0;
}