任务描述
本关任务:编写一个程序,计算斐波那契数列前N
项的和。N
由键盘输入。 斐波那契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、34、...
。在数学上,斐波那契数列以递归的方法定义:F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2)(n≥3,n∈N*)
程序分析
根据斐波那契数列定义可知,需要已知第1个和第2个元素才能求出后面的元素,所以先定义f1=1,f2=1
,然后在循环中先计算f=f1+f2
等公式,而f=f1+f2
之后,要执行f1=f2,f2=f
,其目的是:f1
和f2
表示的不仅仅是第1个和第2个元素,随着循环的进行f1
和f2
可以代表f2,f3,f4,f5,f6
等元素。
编程要求
根据提示,在右侧编辑器补充代码,计算并输出斐波那契数列前N
项的和。
测试说明
平台会对你编写的代码进行测试: 测试输入: 2
预期输出: sum=2
测试输入: 4
预期输出: sum=7
测试输入: 12
预期输出: sum=376
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ch505
{
class Program
{
static void Main(string[] args)
{
/******begin*******/
int n=int.Parse(Console.ReadLine());
int s=fun(n);
Console.Write("sum="+s);
/*******end********/
}
static int f(int a)
{
if(a==1||a==2)
{
return 1;
}
else
{
return f(a-1)+f(a-2);
}
}
static int fun(int n)
{
int sum=0;
for(int i=1;i<=n;i++)
{
sum=sum+f(i);
}
return sum;
}
}
}