متدی بنویسید که یک آرایه دریافت و مشخص کند آیا آرایه را می توان طوری به دو قسمت تقسیم کرد که جمع اعداد قسمت اول و دوم با هم برابر باشد؟
/* Size: 6 1 1 3 3 4 6 true */ //Java Programming //By: Faryadi //Edited By Moradi //Website: Samiantec.ir import java.util.*; public class Main { public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.println("Size: "); int n=input.nextInt(); int[] a=new int[n]; System.out.println("Enter values: "); for (int i=0;i < n;i++) a[i] = input.nextInt(); System.out.println(canSplit(a)); } public static boolean canSplit(int[] a) { int sum=0; int n=a.length; for (int i=0;i < n;i++) { sum += a[i]; } sum /= 2; Arrays.sort(a); int[] x=new int[n]; int sx=0; int[] y=new int[n]; int sy=0; int s=0; for (int i=n - 1;i >= 0;i--) { if (s + a[i] <= sum) { s += a[i]; y[sy++] = a[i]; } else x[sx++] = a[i]; } int suml=0,sumr=0; for (int i=0;i < sx;i++) suml += x[i]; for (int i=0;i < sy;i++) sumr += y[i]; return suml == sumr; } }