кодесурса

Упражнения на Java: вычисление максимального значения суммы передаваемых целых чисел

script1adsense2code
script1adsense3code

Java Basic: упражнение 240 с решением

Расположите целые числа (от 0 до 99) как узкую вершину холма, как показано на рисунке 1. Чтение таких данных, представляющих огромные, начиная с вершины и продолжая согласно следующему правилу до низа. ,
Напишите программу на Java, которая вычисляет максимальное значение суммы передаваемых целых чисел.

Входные данные :
Ряд целых чисел, разделенных запятыми, указан в ромбах. В каждой строке нет пробелов. Пример ввода соответствует рисунку 1. Количество строк данных составляет менее 100 строк.
Вывод: максимальное значение суммы целых чисел, проходящих по правилу в одной строке.

Иллюстрированная презентация:


Пример решения:

Java-код:

 import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main{
 
    public static void main(String[] args) {
		System.out.println("Input the numbers (ctrl+c to exit):");
        Scanner sc = new Scanner(System.in);
        List<String> l = new ArrayList<String>();
        while(sc.hasNext())l.add(sc.next());
        int n = l.size();
        int[][] a = new int[n][];
        for(int i=0;i<n;i++){
            String[] s = l.get(i).split(",");
            int k = s.length;
            a[i] = new int[k];
            for(int j=0;j<k;j++)a[i][j]=Integer.parseInt(s[j]);
        }
        int[] sd = {a[0][0]};
        for(int i=1;i<n;i++){
            int[] tmp = new int[a[i].length];
            for(int j=0;j<tmp.length;j++){
                if(i<=n/2){
                    if(j==0)tmp[j]=sd[j]+a[i][j];
                    else if(j==tmp.length-1)tmp[j]=sd[j-1]+a[i][j];
                    else tmp[j]=Math.max(sd[j-1]+a[i][j], sd[j]+a[i][j]);
                }
                else{
                    tmp[j] = Math.max(sd[j]+a[i][j], sd[j+1]+a[i][j]);
                }
            }
            sd = tmp;
        }
		System.out.println("Maximum value of the sum of integers passing according to the rule on one line.");
        System.out.println(sd[0]);
    }
}

Пример вывода:

 Введите цифры (Ctrl + C для выхода):
8
4,9
9,2,1
3,8,5,5
5,6,3,7,6
3,8,5,5
9,2,1
4,9
8
Максимальное значение суммы целых чисел, проходящих по правилу на одной строке.
64

Блок - схема:

«Блок-схема:

Редактор кода Java:

Внесите свой код и комментарии через Disqus.

Предыдущий: Напишите Java-программу, чтобы вырезать слова длиной от 3 до 6 символов из данного предложения не более 1024 символов.
Далее: Напишите программу на Java, чтобы найти число комбинаций, которые удовлетворяют p + q + r + s = n, где n - это заданное число <= 4000, а p, q, r, s в диапазоне от 0 до 1000.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code