📄 1483.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 1483 on 2005-03-19 at 12:05:58 */
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned long m, n, i, j, *mat = NULL, k, mats;
while(scanf("%lu %lu", &m, &n) == 2){
if((m == 0) && (n == 0)){
return 0;
}else{
m += n;
if (n == 0 || m == n){
printf("1\n");
}else if(n == 1 || n == m - 1){
printf("%lu\n", m);
}else{
if(2 * n > m){
n = m - n;
}
k = m - n;
mat = (unsigned long*)malloc(sizeof(unsigned long)*(n*(k+1)+1));
for(j = 0; j < n; j++){
mat[j] = 1;
for(i = 1; i <= k; i++){
if(j == 0){
mat[j+i*n] = i+1;
}else{
mat[j+i*n] = mat[j+(i-1)*n] + mat[(j-1)+i*n];
}
}
}
printf("%lu\n", mat[(n-1)+k*n]);
free(mat);
}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -