我的任务是询问用户他们想要多少斐波那契数字并打印出来,然后再显示这些数字的平均值。我在下面的代码中提出了一个显示Fibonacci数字的方法,但是我很难弄清楚如何合并程序的平均部分。不是要求你为我做这个,因为这是课堂上的功课,但是知道我应该写出程序的平均部分会很好。
import java.util.Scanner;
public class Clancy_Hw_03_04{
public static void main (String[] args){
Scanner input = new Scanner(System.in);
int number = 0;
System.out.println ("Enter N: ");
number = input.nextInt();
System.out.println("\n\nFibonacci series for " + number +" numbers : ");
for(int i=1; i<=number; i++){
System.out.print(fibonacciLoop(i) +" ");
}
}
public static int fibonacciLoop(int number){
if(number == 1 || number == 2){
return 1;
}
int fibo1=1, fibo2=1, fibonacci=1;
for(int i= 3; i<= number; i++){
fibonacci = fibo1 + fibo2;
fibo1 = fibo2;
fibo2 = fibonacci;
}
return fibonacci;
}
}
答案 0 :(得分:0)
继续计算总和,然后除以数字。 你可以做点什么......
int sum = 0;
for(int i=1; i<=number; i++){
int fibo = fibonacciLoop(i);
System.out.print(fibo +" ");
sum += fibo;
}
System.out.println("Average = " + sum/number);
我希望这次我的问题是对的。
答案 1 :(得分:0)
在main
函数中添加另一个整数,以存储总值:
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int number = 0;
int sum = 0; // Add this here
}
然后,在fibonacci
函数内添加该变量:
public static int fibonacciLoop(int number)
{
if(number == 1 || number == 2)
{
sum += 1;
return 1;
}
int fibo1=1, fibo2=1, fibonacci=1;
for(int i= 3; i<= number; i++)
{
fibonacci = fibo1 + fibo2;
fibo1 = fibo2;
fibo2 = fibonacci;
}
sum += fibonacci; //Put this here, outisde the loop
return fibonacci;
}
如果您想输出平均值,只需将sum
除以number
:
System.out.println("Average is: " + (sum / number));
答案 2 :(得分:0)
如果您在函数fibonacciLoop()中打印斐波那契数字,并且不尝试返回每个连续的数字并从主循环中打印出来,那么您的问题可能更容易解决。然后总和和平均值就在你的指尖。
例如:
public static void main(...) {
...
System.out.println("\n\nFibonacci series for " + number +" numbers : ");
fibonacciLoop(i);
}
static void fibonacciLoop(int number) {
int fibo1 = 1, fibo2 = 1, sum = 0, average = 0, fibonacci;
for (int i = 1; i <= 2 && i <= number; i++) {
System.out.print("1 ");
sum += 1;
}
for (i = 3; i <= number; i++) {
fibonacci = fibo1 + fibo2;
System.out.print(fibonacci + " ");
fibo1 = fibo2; fibo2 = fibonacci;
sum += fibonacci;
}
System.out.println(" average = " + (float)sum/number)
}
编辑:确保在计算平均值
之前将和转换为浮点数