1. 程式人生 > >利用楊輝三角求組合程式碼

利用楊輝三角求組合程式碼

//在資料型別內運算可以求得正確結果,程式碼有冗餘,由三角矩陣的兩列可以得出全部組合數列,暫時先用這種笨拙的方法

#include <iostream>

using namespace std;

int main(int argc, char* argv)
{
    long long M,N,K;
long long i,j;
    
    cin >> M;
    cin >> N;
    cin >> K;
if( M-N < N)
N = M-N;

int temp=1;
while(K--)
temp*=10;
int** m = new int*[M+1];
for(i = 1 ; i <= M; i++)
{
m[i] = new int[N+1];
m[i][0] = 1;
}
for (i = 1; i <= N; i++)
m[i][i] = 1;
    
for(i = 2; i <= M; i ++)
for(j = 1; j < (i <= N ? i:N+1) ;j++)
{
m[i][j] = (m[i-1][j-1] + m[i-1][j])%temp;
}

cout << m[M][N];
cin >> i;


}