У меня есть два нерекурсивных метода, один из них читает все символы "e" внутри строки, другой проверяет, является ли ArrayList алфавитным или нет.
public static int counter( String str ) {
int k = 0;
for( int i = 0; i < str.length(); i++) {
if( str.charAt(i) == 'e' || str.charAt(i) == 'E' ) {
k++;
}
}
return k;
}
public static boolean isAlpha( ArrayList<String> words ) {
int n = 0;
if ( words.isEmpty() ) {
return false;
} else if ( words.size() == 1 ) {
return true;
}
while( n < (words.size() - 1) ){
int j = words.get(n).compareTo( words.get(n + 1));
if ( j > 0 ) {
return false;
}
n++;
}
return true;
}
Определение рекурсивного метода состоит в том, что метод вызывает сам себя. Я верю, что понимаю эту концепцию, однако ее трудно реализовать или преобразовать в рекурсивный метод. Как я могу превратить этот метод в рекурсивный и при этом делать, как я должен думать? Кроме того, вот мой другой метод, который печатает числа только с указанным размером di git.
public static void printN( int n, int step ) {
if ( step > Math.pow( 10, n - 1 ) - 1 ) {
if ( step < Math.pow( 10, n ) - 1 ) {
if ( step % 2 == 0 ) {
if ( condition( step )) {
System.out.print( step + " " );
}
}
}
}
if ( step >= Math.pow( 10, n ) ) {
return;
}
printN( n, step + 1 );
}
метод условия проверяет, больше ли первое di git - справа - числа, больше второго, и снова проверяет, больше ли второго числа третье. Этот процесс проверки продолжается до тех пор, пока не достигнет последней ди git. Можно ли написать printN "method" только со значением параметра "int n"? Плюс метод "счетчик" рекурсивным способом только с одним значением параметра?