问题补充说明:斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……这个数列从第三项开始,每一项都等于前两项之和。请用递归算法编写函数实现求该数列的前n项和。... 斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、…… 这个数列从第三项开始,每一项都等于前两项之和。请用递归算法编写函数实现求该数列的前n项和。 展开
你好,软糖来回答咯~~
代码如下
(注意递归运乐利项行很慢,超过30就很费时360问答间了)
static voi成何制岁d Main(string[] args) {Console.WriteLin孙宁续赶色春岁损预观阻e("// 输入 x 退出本程序");
//请用户输入数字,循环直到正确输入
int 个数 = 10;
b承号附错宁扩ool 结果 = false;
string 输入内容 = "";
while (结果 == false) {
Console.Ba它依守ckgroundColor = ConsoleColor.DarkBlue;
C田谓onsole.Write("请输入斐波那契数列的数量: ");
C没立虽问货建行onsole.BackgroundColor = ***.Black;
输入内容 = Console川去想款扬装.ReadLine();
if (输入内容.Trim(' ').ToLow反企零er() == "x") { Environment.Exit(0); }
if (输入内容.Trim(' ').ToLower() == "") { continue; }
结陈果 = 判断整数是否合法些友停感只风(输入内容);
}
个先统数 = int.Parse(输入内容);
C对自三过士第垂亚路装onsole.BackgroundColor = ConsoleColo激金语虽及茶权他品r.DarkGreen;
C跑爱刻伟叫决onsole.ForegroundColor = ConsoleColor.White;
Console.WriteLine("从 1 到 {0} 的斐波那契数列之和为: {1}", 个数, 递归求和(个数));
C业亲长态怎万会天onsole.BackgroundColor = ***.Black;
//退出
Console.Backgr普行很功坚刘精本oundColor = ConsoleColor.DarkCyan;
Console.Write("按任意键退出...");
Console.ReadKey();
}
static long 递归求和(int n) {
i胜形希赶f (n.Equals(0) || n.Equals(1)) { return 1; }
return (递归求和(n - 1) + 递归求和(n - 2));
}
static bool 判断整数是否合法(string 输入内容) {
int 转换后的数字;
bool 是数字 = int.TryParse(输入内容, out 转换后的数字);
if (是数字 == false) //转换数字失败就再次请求输入正确值。
{ Console.WriteLine("整数不正确!"); return false; } else {
if (转换后的数字 < 0) {
Console.WriteLine("整数必须大于 0!"); return false;
} else {
return true;
}
}
}
满意请采纳,谢谢。