首页 > 编程语言 >【算法】所有路径和中最小路径和并打印路径(C++源码)

【算法】所有路径和中最小路径和并打印路径(C++源码)

时间:2022-10-17 23:32:59浏览次数:49  
标签:并打印 cout int sum 路径 最小 C++ 源码


【算法】所有路径和中最小路径和并打印路径(C++源码)

一、问题描述

给定一个m行n列的矩阵,从左上角开始每次只能向右或
者向下移动,最后到达右下角的位置,路径上的所有数字累加起来作
为这条路径的路径和。请设计一个算法求所有路径和中最小路径和,
并打印输出该路径。

二、例如

以下矩阵
1 3 5 9
8 1 3 4
5 0 6 1
8 8 4 0
的最小路径和是12,对应的路径为1->3->1->0->6->1->0

三、步骤描述

定义一个4*4的矩阵,输入后定义开始下标为[0][0],后判断下和左的大小移动行和列,若相等则继续判断下一个的行和列的大小判断。路径长度保存到b[k],最后输出。

四、运行结果截图

【算法】所有路径和中最小路径和并打印路径(C++源码)_算法

五、源代码(C++)

#include <iostream>

using namespace std;

int main()
{
int a[4][4];
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
cin>>a[i][j];
}
}
int b[7];
b[0]=a[0][0];
int i=0;
int j=0;
for(int k=1;k<7;k++)
{
if(a[i+1][j]>a[i][j+1])
{
b[k]=a[i][j+1];
j++;
}
else
{
b[k]=a[i+1][j];
i++;
}
}
int sum=0;
for(int k=0;k<6;k++)
{
cout<<b[k]<<"->";
sum=sum+b[k];
}
cout<<b[6]<<endl;
sum=sum+b[6];
cout<<"最短路径:"<<sum<<endl;
return 0;
}


标签:并打印,cout,int,sum,路径,最小,C++,源码
From: https://blog.51cto.com/u_15739363/5764695

相关文章