Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Write a program to sum all adjacent equal numbers in a list of decimal numbers, starting from left to right.
- After two numbers are summed, the obtained result could be equal to some of its neighbors and should be summed as well (see the examples below).
- Always sum the leftmost two equal neighbors (if several couples of equal neighbors are available).
- Input Output Explanation
- 3 3 6 1 12 1 3 3 6 1 6 6 1 12 1
- 8 2 2 4 8 16 16 8 16 8 2 2 4 8 16 8 4 4 8 16 8 8 8 16 16 8 16
- 5 4 2 1 1 4 5 8 4 5 4 2 1 1 4 5 4 2 2 4 5 4 4 4 5 8 4
- 0.1 0.1 5 -5 0.2 5 -5 0.1 0.1 5 -5 0.2 5 -5
- package TechModule;
- import java.math.BigDecimal;
- import java.text.DecimalFormat;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import java.util.Scanner;
- import java.util.stream.Collector;
- import java.util.stream.Collectors;
- public class p04_ListsSumAdjacentEqualNumbers {
- public static void main(String[] args){
- Scanner scanner = new Scanner(System.in);
- //double[] readingNumbers=(Arrays.stream(scanner.nextLine().split(" ")).mapToDouble(Double::parseDouble).toArray());
- List<Double>numbers = Arrays.stream(scanner.nextLine().split(" ")).map(Double::parseDouble).collect(Collectors.toList());
- for (int i=0;i<numbers.size();i++){
- for (int j = 0; j <i ; j++) {
- double a = numbers.get(j);
- double b= numbers.get(j+1);
- if (numbers.get(j).equals(numbers.get(j+1))) { // ако го сравнявам с numbers.get(j)==(numbers.get(j+1)), го пропуска , направих си първо две променливи а и б и така го прилъгах… после го направих с equals и проработи 😉
- double result=numbers.get(j)+numbers.get(j+1);
- numbers.set(j,result ) ;
- numbers.remove(numbers.get(j + 1));
- i=0;
- }
- }
- }
- for (double number: numbers)
- {
- System.out.print(new DecimalFormat("#.### ").format(number));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment