есть заполненный числовой двумерный массив А[N][W] (по условию верхняя строка нули, а справа внизу максимум) и вектор w[N], и требуется следуя из крайней правой нижней точки переместиться к следующему значению по правилам:
пытался сделать так, но выдает ошибки при обращении к классу:
String res = new String();
res = null;
int k = N;
int s = W;
res = Num(A[N][W],k,s,w[N-1],res);
private static String Num(int A[][], int k, int s, int w[], String res) {
if (A[k][s] == 0) {
}
if (A[k][s] == A[k-1][s]) {
Num(A[k-1][s],k-1,s,w[k-1],res);
}
else {
int d = w[k];
Num(A[k-1][s],k-1,s-d,w[k-1],res);
res = res + k;
}
return res;
}
Для начала первая ошибка:
если A[k][s] == 0 то завершить выполнение класса;
не класса, а метода (это к терминологии).
if (A[k][s] == 0) {
}
тут вы не завершаете метод, а просто ничего не делаете. Тут 2 варианта как при этом условии выйти:
if (A[k][s] == 0) {
return res;
}
Num(A[k-1][s],k-1,s-d,w[k-1],res);
Таким вызовом метода вы передаете не массивы, а элементы массива. В первом и предпоследнем аргументе.
Как поправить - передавать массив а не элемент:
private static String Num(int A[][], int k, int s, int w[], String res){
if (A[k][s] == 0) {
}
if (A[k][s] == A[k-1][s]) {
Num(A,k-1,s,w,res);
}
else {
int d = w[k];
Num(A,k-1,s-d,w,res);
res = res + k;
}
return res;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В приложения программно (Java коде) вывожу несколько LinearLayoutНе как не могу поставить программно этому LinearLayout фон имеющего drawable
Не могу запустить javaexe из командной строки (cmd)
У меня есть готовый проект написанный в NetBeans с 3-мя классамиКак мне скомпилировать и запустить из командной строки все это? к примеру есть...