как найти наименьшее количество целых чисел в массиве, суммирующем заданное число. Программа должна попросить пользователя ввести массив целых чисел («Входной массив») и требуемую сумму («Требуемая сумма»). На выходе («Выход») должно быть указано наименьшее количество целых чисел из входного массива, которое суммирует «Требуемую сумму».
здесь я создаю функцию 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;
}
}
}
}
как найти наименьшее количество целых чисел в массиве, суммирующем заданное число. Программа должна попросить пользователя ввести массив целых чисел («Входной массив») и требуемую сумму («Требуемая сумма»). На выходе («Выход») должно быть указано наименьшее количество целых чисел из входного массива, которое суммирует «Требуемую сумму».
здесь я создаю функцию sum() и объявляю массив с некоторыми элементами при чтении суммы от пользователя [b]45[/b], это дает мне вывод [b]25,25[/b], но когда я ввожу [b]59 и 60[/b] ничего не отображается
[code] 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; } } }