2016-10-30 2 views
0

Напишите программу для вычисления первых 10 чисел Фибоначчи и сохраните результаты в одномерном массиве. Во втором массиве вычисляются и сохраняются средние значения соседних чисел в серии. Первый массив должен содержать целочисленные значения и второе значение с плавающей запятой. Вывести содержимое обоих массивов в аккуратном форматеПоследовательность Java Fibonacci

public static void main(String[] args) { 
    //number of elements to generate in a series 
    int limit = 10; 

    long[] series = new long[limit]; 

    //create first 2 series elements 
    series[0] = 1; 
    series[1] = 1; 

    //create the Fibonacci series and store it in an array 
    for(int i=2; i < limit; i++){ 
     series[i] = series[i-1] + series[i-2]; 
    } 

    //print the Fibonacci series numbers 
    System.out.println("Fibonacci Series upto " + limit); 
    for (int i = 0; i < limit; i++) { 
     System.out.print(series[i] + " "); 
    } 
} 

Хорошо, так что первая часть работает отлично, но теперь, чтобы создать массив, чтобы вычислить среднее значение немного сложно для me.So пока я попытался это.

int[] numbers = new int[]{1,1,2,3,5,8,13,21,34,55}; 
int sum=0; 
for (int i = 0; i < numbers.length ; i++) {   
    sum = (int) (sum + numbers[i]); 
    double average = (double)sum/numbers.length; 
    System.out.println("Average value of array elements is : " + average); 
} 

Но он не работает достаточно хорошо. Может кто-то предложить мне немного света на этом?

+0

A) Вы хотите, чтобы тратить время, чтобы помочь вам; так что вы, пожалуйста, потратьте несколько минут, необходимых для корректного ** формата ** вы вводите! B) «не работает» - довольно бесполезный термин. Что именно не работает. Другими словами: пожалуйста, обратитесь в справочный центр и прочитайте «как спросить». – GhostCat

+1

Вы хотите вывести «средний» расчет и печать за пределы цикла. –

+0

В нем говорится: «Храните средние значения соседних чисел в серии», то есть '(серия [i] + series [i + 1])/2.0' –

ответ

2

Вы не должны вычислять среднее значение внутри for loop. Переместите ваш average за пределы цикла, чтобы он вычислял один раз sum.

  int[] numbers = new int[]{1,1,2,3,5,8,13,21,34,55}; 
      int sum=0; 
      for(int i=0; i < numbers.length ; i++){   
       sum = (int) (sum + numbers[i]); 
      } 
      double average = (double)sum/numbers.length; 
      System.out.println("Average value of array elements is : " + average); 
+0

Что делать, если вы хотите инициализировать массив с помощью ряда [i] вместо of int [] numbers = new int [] {1,1,2,3,5,8,13,21,34,55}; Как мы это изменим? –

+0

Вы можете сделать 'int [] numbers = new int [limit]', а затем в 'for loop' вы должны установить каждый' numbers [i] = series [i] '. – Libby

1

Попробуйте это:

int[] numbers = new int[]{1,1,2,3,5,8,13,21,34,55}; 
int sum=0; 
for (int i = 0; i < numbers.length - 1; i++) {   
    sum = (int) (sum + numbers[i]); 
    double average = sum/2.0; 
    System.out.println("Average value of array elements is : " + average); 
} 
+0

Отлично работает сейчас :) Спасибо всем –

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