2016-10-12 2 views
-6

Мне нужно написать рекурсивный метод для моих классов. Метод должен напечатать первые п элементов последовательности 1,2,4,8,16, ... так что если метод вызывается, например, как:Рекурсивный метод для 2,4,8, .. в java

recSeq(6); 

метод должен печатать: 1,2, 4,8,16,32 метод объявлен как это:

static void recSeq(int n){ 

    //enter code here 

} 

Я действительно не знаю, как к нему без возвращаемого значения или что-то? Есть идеи?

+2

Почему вы не хотите использовать возвращаемое значение на рекурсивный метод? – Steve101

+1

1. проверьте, что 'n> 1', верните, если нет. 2. Назовите 'recSeq (n - 1)'. 3. напечатайте '1 << n'. –

+0

Итак, вы просто просите нас сделать домашнее задание для вас. Мне придется пройти. – csmckelvey

ответ

1

Рекурсивная функция.

void recSeq(int counter){ 
     if (counter <= 0) return; // first the exit condition 
     int value = counter -1; 
     recSeq(value); // go down to the bottom, in order to print values from lovest values to higher 
     System.out.print(" "+(int)Math.pow(2, value)); // print the value 
} 

на выход:

recSeq(6); // 1 2 4 8 16 32 
0
static void recSeq(int n){ 
    if(n > 1){ 
     recSeq(n-1) 
     System.out.print("," + Math.pow(2, n-1)); 
    } else { 
     System.out.print(1); 
    } 
} 
Смежные вопросы