Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.77 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class es8 {
  4.     public static void main(String[] args) {
  5.         int s;
  6.         Scanner keyboard = new Scanner(System.in);
  7.        
  8.         System.out.print("Inserisci l'array di interi: ");
  9.         String[] buffer = keyboard.nextLine().split(" "); // array di stringhe
  10.         int[] ar = new int[buffer.length]; // array di interi
  11.        
  12.         System.out.print("Inserisci la key");
  13.         s = keyboard.nextInt();
  14.        
  15.         keyboard.close();
  16.  
  17.         for (int i = 0; i < buffer.length; i++) { // converto string[] in int[]
  18.             ar[i] = Integer.parseInt(buffer[i]);
  19.         }
  20.         int[] ciao = new int[2];
  21.        
  22.         ciao = calc(ar,s);
  23.         for(int c : ciao) {
  24.             System.out.print(c + " ");
  25.         }
  26.     }
  27.  
  28.    
  29.     /*
  30.      
  31.      private static String search(int[] ar, int s, int i, int j) {
  32.         if (i == ar.length - 2 && j == ar.length - 1) {
  33.             return (ar[i] + ar[j] == s ? i + " " + j : null);
  34.         } else if (i != ar.length - 2 && j == ar.length - 1) {
  35.             return search(ar, s, i + 1, i + 2);
  36.         } else {
  37.             if (sumOfIJ(ar, i, j) > s) {
  38.                 return search(ar, s, i + 1, i + 2);
  39.             } else if (sumOfIJ(ar, i, j) == s) {
  40.                 return i + " " + j;
  41.             } else
  42.                 return search(ar, s, i, j + 1);
  43.  
  44.         }
  45.  
  46.     }
  47.      */
  48.    
  49.  
  50.     /**
  51.      * works, tested
  52.      *
  53.      * @param ar
  54.      * @param i
  55.      * @param j
  56.      * @return sum of elements in array of int ar
  57.      */
  58.     private static int sumOfIJ(int[] ar, int i, int j) {
  59.         int sum = 0;
  60.         while (i <= j) {
  61.             sum = sum + ar[i];
  62.             i++;
  63.         }
  64.         return sum;
  65.     }
  66.  
  67.  
  68.  
  69.     private static int[] calc(int[] inputa, int keys) {
  70.         int sum = 0, j = 0;
  71.         for(int i = 0 ; i < inputa.length-1; i++) {
  72.             j = i;
  73.             sum = 0;
  74.             if(inputa[i] != 0) {
  75.                 while(j < inputa.length-i) {
  76.                     sum += inputa[j];
  77.                     if(sum == keys) {
  78.                         return new int[] {i, j};
  79.                     }
  80.                     j++;
  81.                 }
  82.             }
  83.         }
  84.         return new int[] {-1,-1};
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement