原题如下:
求斐波那契数列前n项的和值,斐波那契数列如下:
1,1,2,3,5,8,13,21……
前两位数是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);
}
}
}
以上做法虽然可以达到目的,但不是最好的办法。大家有更好的方法希望多多交流。
分享到:
相关推荐
python斐波那契数列第n项 斐波那契数列是指从0和1开始,后面的每一项都是前面两项的和。即:0、1、1、2、3、5、8、13、21、34、55、89、144、233、377、610……以此类推。这个数列在数学上有着重要的应用,也是...
菲波那切数列的前n项求和……用for循环做法
【题目】大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)n<=39。 【思路】斐波那契数列:第n项是第n-1项和第n-2项的和; 当 n=0,f(n)=0; n=1,f(n)=1; n>1,f(n...
F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*) 。 1. 元组实现 fibs = [0, 1] for i in range(8): fibs.append(fibs[-2] + fibs[-1]) 这能得到一个在指定范围内的斐波那契数列的列表。 2. 迭代器...
题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39 n=0时,f(n)=0 n=1时,f(n)=1 n>1时,f(n)=f(n-1)+f(n-2) 解题思路一:基于循环【推荐】 # 基于循环【推荐】 ...
Fibonacci斐波那契数列,很简单,就是一个递归嘛,学任何编程语言可能都会做一下这个。 最近在玩Python,在粗略的看了一下Learning Python和Core Python之后,偶然发现网上有个帖子Python程序员的进化写的很有意思。...
1,编写程序,判断给定的某个年份是否是闰年。...12、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值 16、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和 打印出所有的可能 8、完成九宫格程序
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 解题思路:找规律 设函数f(n) 当 n=0时 f(0) =0 当 n=1时 f(1) =1 当 n=2时 f(2) =1 当 n=3时 f(3) =...
12、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值 1 1 2 3 5 8 13 21 34 规律:一个数等于前两个数之和 //计算斐波那契数列(Fibonacci)的第n个值 public class Fibonacci{ public static void main...
16.设m.n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目。例f(5,3)=5, 有 5种表示方式:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。 ①以下是该函数的程序段,请将未完成的部分填入,...
12. 以下方法 m 的功能是求两参数之积的整数部分。 int m ( float x, float y ) { __________________; } 13. Java 源程序文件编译后产生的文件称为________文件,其扩展名为 ___________ 。 三、判断题( 每小题1分...
3.13 使用递归举例:Fibonacci数列 3.14 递归与迭代 3.15 带空参数表的函数 3.16 内联函数 3.17 引用与引用参数 3.18 默认参数 3.19 一元作用域运算符 3.20 函数重载 3.21 函数模板 3.22 有关对象的思考:...
3.13 使用递归举例:Fibonacci数列 3.14 递归与迭代 3.15 带空参数表的函数 3.16 内联函数 3.17 引用与引用参数 3.18 默认参数 3.19 一元作用域运算符 3.20 函数重载 3.21 函数模板 3.22 有关对象的思考:...
7.斐波那契数列 141 8.求两个数组中的相同元素 141 9.查找一个中间大的数… 141 10.编写类 String的构造析构赋值函数…,…,…,,, 141 11.输入两个宇符串,输出第二个字符串在第一个字符串中的位序 143 12....