как найти наименьшее число целых чисел в массиве, которое суммирует данное число. Программа должна попросить пользователя ввести массив целых чисел («Input Array») и требуемую сумму («Required Sum»). Выходные данные («Output») должны содержать наименьшее число целых чисел из входного массива, в котором суммируется «Required Sum».
здесь я создаю функцию sum () и объявляю массив с некоторыми элементами при чтении суммы от пользователя 45 , это дает мне вывод 25,25 , но когда я ввод 59 и 60 на выходе ничего не отображается
public static void sum()
{
int arr[]={10,0,-1,20,25,30};
Scanner in=new Scanner(System.in);
int sum=in.nextInt();
int[] sub = new int[arr.length];
int temp = 0;
for (int i = 0; i < arr.length; i++)
{
for (int j = i, col = 0; j < arr.length; j++, col++)
{
//add the value of input array one by one
temp += arr[j];
sub[col] = arr[j];
//if addition is equal to sum then print it
if (temp == sum)
{
int total = 0;
for (int k = 0; k < sub.length; k++)
{
total += sub[k];
System.out.println(sub[k]);
//if total and sum are equal then leave the print
if (total == sum)
{
System.out.println();
break;
}
}
}
//if temp is greater than sum are equal then clear the sub array, set temp value and leave the loop for next
if (temp > sum)
{
temp = 0;
break;
}
}
}
}
Пример вывода:
Массив ввода: [10, 0, -1, 20, 25, 30]
Необходимая сумма: 45
Вывод: [20, 25]
Необходимая сумма: 59
Вывод: [10, -1, 20, 30]
Необходимая сумма: 60
Выход: [10, 20, 30]