• 数字三角形算法


    版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/u013412497/article/details/33838535
    题目描写叙述

    显示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路


    径,使该路径所经过的数字的总和最大。

     每一步可沿左斜线向下或右斜

    线向下走。1<三角形行数<25;三角形中的数字为整数<1000。

    输入

    第一行为N。表示有N行后面N行表示三角形每条路的路径权.

    输出

    路经所过的数字总和的最大的答案。

    例子输入

    5

    7
    3 8
    8 1 0
    2 7 4 4
    4 5 2 6 5

    例子输出

    30

    易错点:首先要读懂题意。题目要的是从左向下或者是从右向下;实际图形是这种

    7
    3 8
    8 1 0
    2 7 4 4
    4 5 2 6 5
    多以第二行的8是不能和第三行的8相加的。这一点非常重要

    本题思路是。先用一个二维数组把三角形的数字读进去,然后再开一个二位数组来存放 从上到下经过该点的最大值,每一个点都仅仅有两种情况,一是从它的正上方传下来的,还有就是从它的正上方的前一个传过来的。所以仅仅要比較这两个的大小,然后 把较大的数的值给当前位置的数组的值。当然第一行和最后一行除外。

    第一行和最后一行单独赋值就能够。如图。比方第三行,到1的时候,可能加上左边的3后再加1较大。也可能加上上方的8之后再加上1较大,在这儿仅仅须要比較一下,然后赋值就能够啦。

    详细情况见代码。

    #include<iostream>

    using namespace std;
    int main()
    {
        int a[100][100],b[100][100];
        int i,j,N;
        cin>>N;
        for(i=0;i<N;i++)
            for(j=0;j<=i;j++)         //接收数字三角形的数字
                cin>>a[i][j];
        b[0][0]=a[0][0];
        for(i=1;i<N;i++)
        {
            for(j=0;j<=i;j++)
            {
                if(j==0)
                    b[i][j]=b[i-1][j]+a[i][j];      //j为0时。即为第一行的相加
                else if(i==j)
                    b[i][j]=b[i-1][j-1]+a[i][j];   //i=j时,即为最后一斜行相加;
                else
                {
                int x=b[i-1][j-1]+a[i][j];
                int y=b[i-1][j]+a[i][j];
                b[i][j]=x>y?x:y;
                }
            }
        }
        int max=b[N-1][0];
        for(i=0;i<N;i++)
            if(max<b[N-1][i])
                max=b[N-1][i];
        cout<<max<<endl;
    }
  • 相关阅读:
    将model注册进单例中,每次用的时候从单例里面取
    构建ASP.NET MVC4&JQuery&AJax&JSon示例
    ajax用法
    MVC 后台向前台传值,同一Controller下Action之间的传值,Controller与Controller之间的传值
    mvc5入门指南
    在EF中做数据索引
    json to Object
    ajax请求后返回的时间转换格式
    Target JRE version (1.8.0_101) does not match project JDK version (unknown), will use sources from JDK: 1.8
    Idea 配置启动JDK___在windows中使用Intellij Idea时选择自定义的64位JVM
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10864639.html
Copyright © 2020-2023  润新知