一列数的规则如下:1,1,2,3,5,8,13,21,34………,求数列前n项之和
我是这么写的:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入你要求的前多少项的和?只能输入数字");
int n = int.Parse(Console.ReadLine());
//定义保存前N项和的变量
int sum = 0;
for (int i = 1; i <= n; i++)
{
sum += DiGui(i);
}
//输出前N项的和
Console.WriteLine("您要求的前{0}项的和为: {1}", n, sum);
}
//递归方法
static int DiGui(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
return DiGui(n - 1) + DiGui(n - 2);
}
}
高手说这段的代码的运行效率很低,为什么啊?那应该怎么写了啊?请大家帮忙看看吧
慕容3067478