• 数塔问题


    试题描述

     

    如图所示为一个数字三角形。请编一个程序计算从顶到底的某处的一条路径,使该路径所经过的数字总和最大。只要求输出总和。

    1.   一步可沿左斜线向下或右斜线向下走;

    2.   三角形行数小于等于100;

    3.   三角形中的数字为0,1,…,99;

     

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

     

     

    输入
    输入数据共n+1行,第一行为三角形行数n,后面n行表三角形每一行的数字。
    输出
    输出结果总和。
    输入示例
    5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5
    输出示例
    30
    #include <iostream>
    using namespace std;
    int main()
    {
        int a[101][101],n,sum=0;
        cin>>n;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=i;j++)
                cin>>a[i][j]; 
        for(int i=n-1;i>=1;i--)
        {
            for(int j=i;j>=1;j--)
            {
                if(a[i+1][j+1]>=a[i+1][j])
                    a[i][j]+=a[i+1][j+1];
                else
                    a[i][j]+=a[i+1][j];
            }
        }
        cout<<a[1][1];
    }
    View Code
  • 相关阅读:
    关于Combobox的多选和单选情况
    Struts2的method{1}用法
    ${sessionScope.user}的使用方法
    jQuery 遍历
    jQuery的Event对象(实例)。
    度熊全是由1构成的字符串
    Prime Ring Problem
    八皇后问题
    Hanoi
    全排列
  • 原文地址:https://www.cnblogs.com/jason2003/p/6572386.html
Copyright © 2020-2023  润新知