У меня был заданный вопрос в моем курсе CS в этом семестре, который является вопросом обзора из последнего семестра, но вопрос в следующем: «Учитывая оборванный массив, найдите, если какая-либо строка внутри массив имеет произведение из 48 и, если это так, вернет номер строки. Если ни одна строка не содержит произведение из 48, верните -1. " Это то, что у меня есть до сих пор.Продукт строки в Ragged (зазубренный) массив
public class RaggedProducts {
public static void main(String[] args) {
int[][] a = {{3, 9},
{100},
{1, 4, 6, 2},
{23, 3, 8}};
System.out.println(product(a));
}
/*
* finds if parameter array has a row which the numbers within that row
* have a product of 48, returns row integer value. If no rows have a
* product of 48, returns -1.
*/
public static int product(int[][] ragged) {
int product = 1;
for (int i = 0; i < ragged.length; i++) {
// EDIT: I got my answer, I had to add "product = 1" here
for (int j = 0; j < ragged[i].length; j++) {
product *= ragged[i][j];
if (i > 0) { // what to do here to reset product value whenever "i" changes
// "i > 0" is just a placeholder, I know it doesn't make sense
product = 1;
}
if (product == 48) {
return i; // I want to return the value 2
}
}
}
return -1;
}
}
Если установить первую строку в массиве зубчатым иметь продукт 48, то программа работает, но я запутался о том, как идти о сбросе поля продукта на 1 после строка изменяется. Любая помощь будет оценена!
переменную 'i' изменения на каждом цикле. Для сброса 'product' вам не нужно заботиться о значении' i', вы можете просто сбросить его в каждом цикле внешнего цикла for. – Ralf