我需要一些有关 C 语言动态编程的示例。 我现在正在用C学习算法,但是在这本书中,例子太难理解了。 有人给我举个例子吗?
最佳答案
递归函数:- 如果没有动态编程,它将多次调用同一个函数。
int nCr(int n,int r){
if (r == 0 || r == n || n == 1 || n == 0){
return 1;
}
else{
return nCr(n-1,r) + nCr(n-1,r-1);
}
}
现在在动态规划的帮助下:
#include <stdio.h>
int main(void) {
int n,r;
scanf("%d%d",&n,&r);
int mem[n+1][r+1];
int i,j;
for(i=0;i<n+1;i++)
{
for(j=0;j<r+1;j++)
{
if (j == 0 || j == i || i == 1 || i == 0)
mem[i][j]=1;
else
mem[i][j]=mem[i-1][j]+mem[i-1][j-1];
}
}
printf("%d",mem[n][r]);
return 0;
}
我使用了二维数组来保存值,以便我可以使用它们而不是一次又一次地调用该函数。我使用了动态规划的概念。
关于c - C 动态编程简单示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47376538/