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

Posted 敲代码两年半的练习生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法所有路径和中最小路径和并打印路径(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++)

#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;

以上是关于算法所有路径和中最小路径和并打印路径(C++源码)的主要内容,如果未能解决你的问题,请参考以下文章

路径规划基于matlab Dijkstra算法多机器人路径规划含Matlab源码 1883期

路径规划基于matlab Dijkstra算法机器人编队路径规划含Matlab源码 1884期

转载:动态规划以及路径记录

遗传算法求解TSP源码及解析

TSP基于matlab蜜蜂算法求解旅行商问题含matlab源码 1248期

TSP基于matlab遗传算法求解旅行商问题含Matlab源码 1337期