又一个斐波那契数

[复制链接]
查看11 | 回复1 | 2011-3-25 09:56:15 | 显示全部楼层 |阅读模式
题目是这个这个是最正宗的斐波那切数列.F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) (n>=2)
每行输入一个数n和m
每行输出F(n)%m.
我的代码是这个:
import java.util.Scanner;
public class Fibonacci2 {
public static void main(String[]arqs){
int[] f=new int[100000];
while(true){
Scanner s=new Scanner(System.in);
int n=s.nextInt();//从键盘上输入一个数字
int m=s.nextInt();
/*if(n==0||n==1){
f[0]=0;
f[1]=1;
System.out.println(n%m);
}
else{*/
for(int i=0;i<=n;i++){

f[0]=0;

f[1]=1;

f=f[i-1]+f[i-2];
}
System.out.println(f[n]%m);
}
}
}
编译是没有错误的。但是我输入 2和4后 就显示
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at Fibonacci2.main(Fibonacci2.java:19)
请问该怎么修改

回复

使用道具 举报

千问 | 2011-3-25 09:56:15 | 显示全部楼层
利数学家列昂纳多·斐波那契(Leonardo Fibonacci,生于公元1170年,卒于1240年。籍贯大概是比萨)。他被人称作“比萨的列昂纳多”。1202年,他撰写了《珠算原理》(Liber Abaci)一书。他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点相当于今日的阿尔及利亚地区,列昂纳多因此得以在一个阿拉伯老师的指导下研究数学。他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯研究数学。斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21…… 这个数列从第三项开始,每一项都等于前两项之和。它的通项公式为:(1/√5)* 很有趣的是:这样一个完全是自然数的数列,通项公式居然是
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行