MOOC清华《程序设计基础》第6章第2题:求f(a,b)问题(动态规划)

来源:互联网 发布:xp系统分区软件 编辑:程序博客网 时间:2024/06/06 02:09

题目描述

已知f(n, 0) = 1, f(n,n) = 1

当n>m>0时,f(n,m) = f(n-1,m-1) + f(n-1, m)

求f(a, b)


输入格式

多行输入,每一行输入两个正整数a, b (1 <= b <= a <= 10),a,b以空格隔开

输出格式

每一行输出f(a,b)值

样例输入

2 23 2
样例输出

13
#include <iostream>using namespace std;int main(){int a[20] = {0};int b[20] = {0};int i = 0;while(cin >> a[i] >> b[i])i++;int f[11][11] = {0};for(int j = 0; j < i; j++){for(int k = 0; k <= a[j]; k++)f[k][0] = 1;for(int k = 0; k <= a[j]; k++)f[k][k] = 1;for(int m = 1; m <= b[j]; m++)for(int n = m; n <= a[j]; n++){if(n == m)f[n][m] = 1;elseif(n > m)f[n][m] = f[n - 1][m - 1] + f[n - 1][m];}cout << f[a[j]][b[j]] << endl;}return 0;}



阅读全文
0 0