用java程序编写菲薄拉契数列:1,1,2,3,5,8,13…….的第n项,n由键盘输入

 我来答
美图赏
2012-10-30 · 知道合伙人数码行家
美图赏
知道合伙人数码行家
采纳数:2638 获赞数:24292
毕业于河南大学电子信息科学与技术专业,学士学位,擅长计算机网络技术。

向TA提问 私信TA
展开全部
下面是通过递归实现的计算前20项的代码,如果要计算前100项,只需要把主方法里面的20改成100就行。如果没必要的话,建议你不要计算前100项,因为数据太过庞大。

public class SumFib {

public long fid(int n){
if((n==1)||(n==2)){
return 1;
}
else{
return fid(n-1)+fid(n-2); //递归调用
}
}

public void prinSum(int n){
long sum=0L;
for(int i=1;i<=n;i++){
sum+=fid(i); //求和
//System.out.println(fid(i));
}
System.out.println(sum);
}
public static void main(String[] args) {
new SumFib().prinSum(100); //实例化匿名对象并调用求和方法
}
}
追问
n用键盘输入是不是要用到scanner呢?
追答
是的,你可以再修改下 main
百度网友216ad50
2012-10-30 · 超过18用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:35.3万
展开全部
public static void main(String[] args){

Scanner sc=new Scanner(System.in);
System.out.println("please input: ");

int n=sc.nextInt();

n=(int) (1/Math.sqrt(5)*(Math.pow((1+Math.sqrt(5))/2, n)-Math.pow((1-Math.sqrt(5))/2, n)));
System.out.println(n);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式