现在的位置: 首页 > 综合 > 正文

acm_18The Triangle

2019年06月13日 ⁄ 综合 ⁄ 共 1458字 ⁄ 字号 评论关闭

The Triangle

时间限制:1000 ms
  内存限制:65535
KB
难度:4
描述

7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
(Figure 1)
Figure 1 shows a number triangle. Write a program that calculates
the highest sum of numbers passed on a route that starts at the top
and ends somewhere on the base. Each step can go either diagonally
down to the left or diagonally down to the right.

输入
Your program is to read from standard input. The first line
contains one integer N: the number of rows in the triangle. The
following N lines describe the data of the triangle. The number of
rows in the triangle is > 1 but <= 100. The numbers in the
triangle, all integers, are between 0 and 99.
输出
Your program is to write to standard output. The highest sum is
written as an integer.
样例输入
5
7
3 8
8 1 0 
2 7 4 4
4 5 2 6 5
样例输出
30
上传者

苗栋栋

import java.util.Scanner;

public class Triangle{

    public
static void main(String[] args) {
         
Triangle triangle = new Triangle();
         
triangle.solution();
    }
    int[]
numlist;
    int[]
resultList;
    int
rows;
    public void
solution() {
   
   
getData();
   
   
System.out.println(handle());
    }
   
   
//获取输入;
    private void
getData(){
   
    Scanner in =
new Scanner(System.in);
       
rows = in.nextInt();
       
//计算三角形中一共有多少个元素
       
int temp = (1+rows)*rows/2;
       
numlist = new int[temp];
       
resultList = new int[temp];
       

       
for(int i = 0 ; i < numlist.length; i++){
       
    numlist[i] =
in.nextInt();
       
}
    }
   
    //处理数据
    private int
handle(){
   
    for(int i =
1; i <=rows ;i++){
   
   
    for(int j =
1; j<=i ; j++){
   
   
   
    if(i ==
1){
   
   
   
   
   
setResultList(1, 1, acessTriangle(1, 1, false));
   
   
   
   
   
continue;
   
   
   
    }
   
   
   
   
   
   
   
    if(j ==
1){
   
   
   
  

抱歉!评论已关闭.