jwrbg

asd

Mar 12th, 2019
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.22 KB | None | 0 0
  1. Write a program to sum all adjacent equal numbers in a list of decimal numbers, starting from left to right.
  2.  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).
  3.  Always sum the leftmost two equal neighbors (if several couples of equal neighbors are available).
  4.  
  5. Input   Output  Explanation
  6. 3 3 6 1 12 1    3 3 6 16 6 112 1
  7. 8 2 2 4 8 16    16 8 16 8 2 2 4 8 168 4 4 8 168 8 8 1616 8 16
  8. 5 4 2 1 1 4 5 8 4   5 4 2 1 1 45 4 2 2 45 4 4 45 8 4
  9. 0.1 0.1 5 -5    0.2 5 -5    0.1 0.1 5 -50.2 5 -5
  10.        
  11.  
  12.  
  13.  
  14. package TechModule;
  15.  
  16. import java.math.BigDecimal;
  17. import java.text.DecimalFormat;
  18. import java.util.ArrayList;
  19. import java.util.Arrays;
  20. import java.util.List;
  21. import java.util.Scanner;
  22. import java.util.stream.Collector;
  23. import java.util.stream.Collectors;
  24.  
  25. public class p04_ListsSumAdjacentEqualNumbers {
  26.     public static void main(String[] args){
  27.             Scanner scanner = new Scanner(System.in);
  28.             //double[] readingNumbers=(Arrays.stream(scanner.nextLine().split(" ")).mapToDouble(Double::parseDouble).toArray());
  29.  
  30.                     List<Double>numbers = Arrays.stream(scanner.nextLine().split(" ")).map(Double::parseDouble).collect(Collectors.toList());
  31.  
  32.  
  33.  
  34.          for (int i=0;i<numbers.size();i++){
  35.              for (int j = 0; j <i ; j++) {
  36.                  double a = numbers.get(j);
  37.                  double b= numbers.get(j+1);
  38.                  if (numbers.get(j).equals(numbers.get(j+1))) { // ако го сравнявам с numbers.get(j)==(numbers.get(j+1)), го  пропуска , направих си първо две променливи а и б и така го прилъгах… после го направих с equals и проработи 😉
  39.                   double result=numbers.get(j)+numbers.get(j+1);
  40.                      numbers.set(j,result ) ;
  41.                      numbers.remove(numbers.get(j + 1));
  42.                      i=0;
  43.  
  44.                  }
  45.              }
  46.  
  47.          }
  48.         for (double number: numbers)
  49.               {
  50.                   System.out.print(new DecimalFormat("#.### ").format(number));
  51.  
  52.         }
  53.  
  54.            }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment