zoukankan      html  css  js  c++  java
  • 数字三角形

    Description

    给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。

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

    对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底的路径经过的数字和的最大值。

    Input

    输入的第一行是数字三角形的行数n,1 ≤ n ≤ 600。接下来n行是数字三角形各行中的数字。所有数字在0..99之间。

    Output

    输出一个数:计算出的最大值。

    Sample Input

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

    Sample Output

    30

    #include<stdio.h>
    #include<iostream>
    using namespace std;
    #define MAX 601
    int tri[MAX][MAX];
    int triangle(int n){
        int i,j;
        for(i=n-2;i>=0;i--)
            for(j=0;j<=i;j++)
                if(tri[i+1][j]>tri[i+1][j+1])
                    tri[i][j]+=tri[i+1][j];
                else tri[i][j]+=tri[i+1][j+1];
        return tri[0][0];
    }
    int main(){
        int n;
        cin >> n;
        for(int i=0;i<n;i++){
            for(int j=0;j<=i;j++)
            cin >> tri[i][j];
        }
        cout << triangle(n) <<endl;
    }
  • 相关阅读:
    面向对象三大特征------多态
    接口的概念
    面向对象(抽象类)
    面向对象三大特征------继承
    面向对象三大特征------封装
    成员变量和局部变量的区别
    20180822 ajax post 方式请求
    20180815 权限
    20180815 视图
    20180814 夜晚小目标
  • 原文地址:https://www.cnblogs.com/dichuan/p/8243173.html
Copyright © 2011-2022 走看看