从n个数中取m个

#include<algorithm>
#include <iostream>
#include <string>
#include <cstdlib>
#include <cstdio>  
#include <vector>
#include<ctime>
#define random(a,b) (rand()%(b-a+1)+a)
typedef long long ll;
using namespace std;
int v1[100][100];
int fn(int n,int m){//递归
    if(n==m||m==0)
    return 1;
    if(m==1) return n;
    if(v1[n][m]!=0) return v1[n][m];
    return v1[n][m]=fn(n-1,m-1)+fn(n-1,m);
} 
int main()
{
    int n,m; 
    cin>>n>>m;
    int a[n+1][n+1]={0};
    for(int i=1;i<=n;i++)//初始化
        a[i][0]=a[i][i]=1;
        for(int i=2;i<=n;i++)//递推
        for(int j=0;j<=n/2;j++)
        {
            a[i][j]=a[i-1][j]+a[i-1][j-1];
            a[i][i-j]=a[i][j];
        }
        cout<<a[n][m];
    return 0;
}
全部评论

相关推荐

练习JAVA时长两年半:qps 30000
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务