`

用for循环输出斐波那契数列并求前N项之和

    博客分类:
  • JAVA
阅读更多

原题如下:

 

求斐波那契数列前n项的和值,斐波那契数列如下:
       1123581321……
前两位数是1,从第三位开始每位数都是前两位数之和。
import java.util.Scanner;

public class FibNumber {

	public static void main(String[] args) {
		System.out.print("请输入要求的项数N:");
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		int[] f = new int[n];	//定义一个整形数组用于存放斐波那契数,好像用整形当项数N大于45时会发生溢出,产生错误结果
		int sum = 0;			//存放前N项之和
		
		if(n<=0) {				//处理特殊情况n<=0
			System.out.println("项数必须是大与0的整数!");
		} else if(n==1) {		//处理特殊情况n=1
			sum = 1;
			System.out.println("斐波那契数列如下:\n1");
			System.out.println("前" + n + "项之和为: " + sum);
		} else if(n==2) {		//处理特殊情况n=2
			sum = 2;
			System.out.println("斐波那契数列如下:\n1	 1");
			System.out.println("前" + n + "项之和为: " + sum);
		} else {				//处理一般情况n>=3
			System.out.println("斐波那契数列如下:");
			for(int i=0; i<f.length; i++) {
				f[0] = 1;
				f[1] = 1;
				for(int j=3; j<=n; j++)
				f[j-1] = f[j-2] + f[j-3];	//斐波那契数列各项之间的关系,不能用f[j]=f[j-1]+f[j-2],会发生数组越界异常
				System.out.print(f[i] + "\t");
				sum = sum + f[i];
				if((i+1)%12==0) {	//控制12个数为一行
					System.out.println();
				}
			}
			System.out.println();  //输出一个空行再显示前N项之和
			System.out.println("前" + n + "项之和为: " + sum);
		}			
	}
}
 以上做法虽然可以达到目的,但不是最好的办法。大家有更好的方法希望多多交流。

 

0
2
分享到:
评论
2 楼 xyfwjk 2011-07-24  
long[] array=new long[20]; //整型放不下所以用long

long f1=1;
long f2=1;
array[0]=1;
array[1]=1;
//前20个数字赋值
for(int i=2;i<20;i++){
        f2=f1+f2;
	f1=f2-f1;
	array[i]=f2;
}
//求和
int sum=0;
for(int j=0;j<array.length;j++){
     sum+=array[j];
}
1 楼 cheeruplc 2011-07-24  


这个可以吧,不是必须写成f(n-1)=f(n-2)+f(n-3);吧
写个递归:这个用来计算第n个斐波那契数
public int fib(int n)
{
if (n==0||n==1) return f(n)=1;
if (n>1) return f(n)=f(n-1)+f(n-2);
}

写个循环求和
long sum=0;
for(int i=0;i<n;i++)
{
sum+=fib(n);
}

这样的思路应该没有问题。

相关推荐

    利用Matlab程序计算斐波那契数列的前一百项

    % 输出斐波那契数列的前一百项 disp(fibonacci) ``` 在这个MATLAB程序中,我们首先定义了斐波那契数列的前两项`fibonacci = [1, 2]`,然后通过`for`循环从第三项开始计算,直到第一百项。在每次循环中,我们使用`...

    python斐波那契数列第n项.docx

    了解并掌握如何在Python中计算斐波那契数列的第n项,有助于提升编程能力,理解递归和迭代的概念,以及在实际问题中应用这些技术。无论是递归还是循环实现,它们都展示了如何用简洁的代码来解决复杂的问题,这对于...

    输出fibonacci数列的前40项

    6. **输出结果**:最终输出的是Fibonacci数列的前40项,每5项一行。 #### 扩展知识点 1. **递归算法**:除了迭代方法外,Fibonacci数列还可以通过递归的方式计算。递归算法直观但效率较低,尤其对于较大的数列项数...

    java实现Fibonacci数列

    接下来,我们将展示如何使用上面定义的`Fibonacci`类来输出前20项Fibonacci数列。 ```java public class Test { public static void main(String[] args) { Fibonacci f = new Fibonacci(); for (int i = 0; i ;...

    求解fibonacci数列的前20项

    - 另一个`for`循环用于输出计算得到的Fibonacci数列。为了使得输出更加整洁,每输出5个数字后会换行。 ### 特点与优化建议 #### 代码特点 - **简洁性**:代码非常简洁,易于理解。 - **效率**:由于使用了迭代而...

    java代码实现斐波那契数列输出第n个数

    斐波那契数列定义如下:第一项和第二项分别为0和1,之后每一项都是前两项之和。用数学公式表示就是F(0) = 0,F(1) = 1,对于n &gt; 1,F(n) = F(n-1) + F(n-2)。 在Java编程中,实现斐波那契数列有多种方法,包括递归...

    Fibonacci数列(非递归的函数调用)

    这个数列的定义是这样的:第一项F0等于0,第二项F1等于1,从第三项开始,每一项都等于前两项之和。即Fn = Fn-1 + Fn-2 (n &gt;= 3)。斐波那契数列的前几项为0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...。 在编程中,特别是...

    菲波那切数列前n项求和

    菲波那切数列的前n项求和……用for循环做法

    Fibonacci(斐波那契)数列的JAVA解法

    输出Fibonacci数列是一种使用循环来输出斐波那契数列的方法。该方法的思想是使用循环来输出斐波那契数列的每个数字。下面是一个输出Fibonacci数列的JAVA代码: public class Fib{ public static void main(String ...

    斐波那契数列前20项.docx

    斐波那契数列是一个经典的数学概念,在计算机科学中经常被用作算法...这段迭代代码同样可以输出斐波那契数列的前20项,但执行速度更快,特别是对于更大的 `n` 值。在实际编程中,应根据性能需求选择合适的算法实现。

    Fibonacci:程序取一个整数,并打印出斐波那契数列的那一项

    如果你想要在控制台打印斐波那契数列的特定项,可以调用这个函数并传入所需的索引,例如`print(fibonacci(10))`会打印出第10项斐波那契数,即55。 在实际编程中,除了这种方法,还可以使用递归、动态规划或矩阵乘法...

    用C语言求解斐波那契数列的前n项并输出及兔子繁殖问题.docx

    在这个例子中,我们使用了一个简单的循环结构配合switch语句来计算斐波那契数列的前n项。首先,定义一个大小为n的整型数组f来存储每一项的值。在main函数中,通过scanf获取用户输入的项数n,然后清屏准备输出结果。 ...

    剑指offer—07斐波那契数列(Python)

    【题目】大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)n&lt;=39。 【思路】斐波那契数列:第n项是第n-1项和第n-2项的和; 当 n=0,f(n)=0; n=1,f(n)=1; n&gt;1,f(n...

    简单K阶斐波那契数列程序

    K阶斐波那契数列是这一概念的拓展,通常我们所说的斐波那契数列是二阶的,即F(0) = 0,F(1) = 1,而F(n) = F(n-1) + F(n-2),对于n大于1的情况。K阶斐波那契数列则是将这个公式扩展到了更高的阶数。 在这个C语言...

    斐波那契数列

    这个程序首先提示用户输入项数,然后调用`fibonacci`函数计算并打印出相应项的斐波那契数列。注意,为了简化代码,我们假设用户输入始终有效。在实际应用中,应当加入适当的错误处理机制,以增强程序的健壮性。 ...

    C语言程序设计-程序举例输出斐波那契数列.pptx

    在这个例子中,我们将深入理解如何用C语言编写程序来输出斐波那契数列的前40个数。 首先,斐波那契数列定义如下:F1 = 1,F2 = 1,然后对于n大于或等于3,Fn = Fn-1 + Fn-2。这个数列的特点是每一项都是前两项之和...

    c 语言斐波那契数列输出

    在`main`函数中,我们使用一个for循环来调用`fib`函数并打印出前`n`项的斐波那契数列。 ```c #include int fib(int n) { if (n ) { return n; } else { return fib(n - 1) + fib(n - 2); } } int ...

    C语言计算斐波那契数列(Fibonacci sequence), vc 6++可运行源码

    斐波那契数列的定义是这样的:第一项和第二项为1,从第三项开始,每一项都等于前两项之和。用数学公式表示就是 F(1) = 1, F(2) = 1, F(n) = F(n-1) + F(n-2) (n &gt; 2)。 在C语言中,我们可以用多种方法来实现...

    斐波那契输出 java

    3. **循环输出斐波那契数列**: - `for (int i = 2; i ; i++) {` 循环20次,每次循环输出当前的`f1`和`f2`。 - `System.out.print(f1 + "" + f2 + "");` 输出当前的`f1`和`f2`,使用空字符串连接以确保输出格式...

    斐波纳契数列求和算法

    这个数列的定义是:第一项F0为0,第二项F1为1,之后的每一项Fi(i &gt;= 2)都是前两项之和,即Fi = Fi-1 + Fi-2。数列的初始几项是0, 1, 1, 2, 3, 5, 8, 13, ...。斐波纳契数列在自然界、艺术、音乐和许多科学领域都...

Global site tag (gtag.js) - Google Analytics