Мне предстоит задача: мне дана комната размера n и ряд шагов, которые я могу предпринять, чтобы пересечь комнату. Комната всегда будет целочисленного размера, как и ступеньки. Один и тот же шаг можно повторить несколько раз. Моя цель — найти общее количество возможных способов пересечь комнату, не выходя за пределы комнаты. Пример пользовательского ввода:
Где первое целое число, 5, — это размер комнаты, а 9 1 3 5 — возможные шаги, которые я могу предпринять. Функция/алгоритм вернет что-то вроде этого
Код: Выделить всё
5 // Room size
1 1 1 1 1
1 1 3
1 3 1
3 1 1
5
Концептуально я прекрасно понимаю, что происходит, я заметил, что функция, похоже, начинается с наименьших значений и строится оттуда. Проблема, с которой я столкнулся, заключается в том, чтобы перенести это из головы в рабочий код.
Текущий код, над которым я работаю:
Код: Выделить всё
public static void main(String[] args) {
Scanner Scan = new Scanner(System.in);
int ArraySize;
int[] num = new int[100];
int temp;
int i, n, j;
int roomLength;
System.out.println("Size of Room: ");
roomLength = Scan.nextInt();
System.out.println("\nTotal numbers that will be entered: ");
n = Scan.nextInt();
System.out.println("\nNumbers:");
for (i = 0 ; i < n; i++){
num[i] = Scan.nextInt();
}
for (j = 1; j
Подробнее здесь: [url]https://stackoverflow.com/questions/35017742/coded-algorithm-for-number-of-ways-to-cross-a-room[/url]