Advertisement
Guest User

Untitled

a guest
Dec 7th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.46 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Scanner;
  6.  
  7. public class Main {
  8.     public static void main(String[] args){
  9.         ArrayList<Integer> list = new ArrayList<Integer>();
  10.         Scanner scan=new Scanner(System.in);
  11.         System.out.print("\nКоличество чисел в прогрессии = ");
  12.         int n = scan.nextInt();
  13.         int[] progression = new int[n];
  14.  
  15.         for(int i=0;i < progression.length;i++){
  16.             System.out.printf("a[%d] = ", i + 1);
  17.             progression[i] = scan.nextInt();
  18.         }
  19.  
  20.         for (int i = 0; i < progression.length; i++) list.add(progression[i]);
  21.  
  22.         for(int v: list){
  23.             System.out.print(v+", ");
  24.         }
  25.         System.out.println(" ");
  26.         process(list);
  27.     }
  28.     private static List<Integer> copy (List < Integer > var, int v){
  29.         for (int i = 0; i < var.size(); i++) {
  30.             System.out.print(var.get(i).intValue() + " ");
  31.         }
  32.         System.out.println(" ");
  33.         System.out.println("Сделано " + v + " замен");
  34.         return var;
  35.     }
  36.  
  37.  
  38.     public static List<Integer> result = new ArrayList<Integer>();
  39.    
  40.     public static void process (List < Integer > list) {
  41.         int step = Math.abs(list.get(0) - list.get(1));
  42.         for (int i = 1; i < list.size() - 1; i++) {
  43.             int a = Math.abs(list.get(i) - list.get(i + 1));//определяем шаг прогресии
  44.         }
  45.         List<Integer> var1 = new ArrayList<Integer>();
  46.         List<Integer> var2 = new ArrayList<Integer>();
  47.         int v1 = 0, v2 = 0;
  48.         //проверяем возможность построения восходящего и нисходящего списка
  49.         var1.add(list.get(0));
  50.         var2.add(list.get(list.size() - 1));
  51.         for (int i = 1; i < list.size(); i++) {
  52.             if (list.get(i) - list.get(i - 1) == step) {
  53.                 var1.add(list.get(i));
  54.             } else {
  55.                 var1.add(var1.get(i - 1).intValue() + step);
  56.                 v1++;
  57.             }
  58.             if (list.get(list.size() - (i + 1)) - list.get(list.size() - i) == step) {
  59.                 var2.add(list.get(list.size() - (i + 1)));
  60.             } else {
  61.                 int next = var2.get(0).intValue() + step;
  62.                 var2.add(next);
  63.                 v2++;
  64.             }
  65.         }
  66.         result = v1 < v2 ? copy(var1, v1) : copy(var2, v2);
  67.     }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement