问题描述:
在一个二维数组中存储数值,寻找一条最大的路径总和(某两个数之间,本篇博客是(0,0)到(m,n))
#include<stdio.h>
#include<stdlib.h>
#define M 10
int Map[M][M];
int scan_f(int m,int n)
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d", &Map[i][j]);
}
}
}
int Max(int num1, int num2)
{
if(num1 > num2)
return num1;
return num2;
}
int Find(int m,int n)
{
if(m == 0 && n==0)
return Map[m][n];
if(m == 0)
return Map[m][n] + Find(m, n-1);
if(n==0)
return Map[m][n] + Find(m-1, n);
return Max(Map[m][n]+Find(m-1,n), Map[m][n]+Find(m,n-1));
}
int main()
{
int m,n;
int result;
scanf("%d %d", &m, &n);
scan_f(m,n);
result = Find(m,n);
printf("%d\n", result);
return 0;
}
详细分析请看我另一个博客:数字三角形问题。
https://blog.csdn.net/qq_44971979/article/details/109280440