2013-10-11 2 views
-1

Я пытаюсь напечатать последовательность Fibonacci с использованием цикла do-while в java и не могу это понять. Должно быть между 0 и 100.Последовательность Fibonacci с использованием цикла do-while в java?

У меня есть следующий код:

int prevPrevVal = 0; 
int prevVal = 1; 
int currVal; 
System.out.println(prevPrevVal); 
System.out.println(prevVal); 

do 
{  
    currVal = prevVal + prevPrevVal; 
    System.out.println(currVal); 

    prevPrevVal = prevVal; 
    prevVal = currVal;   
} while (prevVal <= 100); 
+0

http://wiki.answers.com/Q/Fibonacci_series_with_do_while_in_java –

+2

У вас может быть просто * Googled * this. – SudoRahul

+1

В чем вопрос? –

ответ

0

Это должно быть ваше решение

public static void main(String[] args) { 

    int prevVal = 1; 
    int prevPrevVal = 0; 
    int n = 0; 
    do{ 
     int currVal = prevVal + prevPrevVal; 
     prevPrevVal = prevVal; 
     prevVal = currVal; 
     System.out.print(currVal+" "); 
     n++; 
    }while(n<5);//n is the number of terms 


} 
0

Здесь вы идете:

int prevVal = 1; 
int prevPrevVal = 0; 
     do{ 
     int currVal = prevVal + prevPrevVal; 
        //currVal is your Fibonacc seq. 
     prevPrevVal = prevVal; 
     prevVal = currVal; 
    } 
    while(yourCondition); 
0

Использование базовая структура петли do-while от documentation:

do { 
    statement(s) 
} while (expression); 

Что вы хотите в разделе «Statement (s)», чтобы увеличить (и, возможно, вывести) ваш результат через каждую итерацию. Базовая последовательность Фибоначчи, используя do-while цикл будет выглядеть следующим образом:

int prevVal = 1; 
int prevPrevVal = 0; 
int currVal; 
do { 
    // Add the two numbers 
    currVal = prevVal + prevPrevVal; 
    // "Bump" up prevPrevVal to prevVal, and prevVal to currVal 
    prevPrevVal = prevVal; 
    prevVal = currVal; 
    // Output to the screen 
    System.out.println(currval + "\n"); 
} while(expression); 
+0

Я добавил код, который я получил, но он печатает до 144. Есть ли причина? – Ryan

+0

Ваши условные выражения 'prevVal <= 100'. В этом случае это означает, что цикл do do while должен выполняться до тех пор, пока 'prevVal' не будет превышать 100, это означает, что' prevVal' и 'prevPrevVal' будут останавливаться со значениями 89 и 55 соответственно. В следующей итерации 'prevVal' будет равен' currVal', который равен 144, а так как это больше 100, цикл завершается. –

+0

Мне нужно напечатать 0 - 100. Я не могу этого добиться. – Ryan

0

Так как вы хотите, чтобы условия Фибоначчи до 100, просто изменить while (prevVal <= 100); к while (prevVal+prevPrevVal <= 100);

Это будет печатать до 89.

Смежные вопросы