关于递归算法的一些常见问题
Posted myvis
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于递归算法的一些常见问题相关的知识,希望对你有一定的参考价值。
面试题中总能遇见一些常见的递归算法的问题,下面罗列一些简答的递归算法问题:
public void recursions()
{
Console.Write("请输入一个从1叠加的到得数字:");
string k = Console.ReadLine();
int count = sun(Convert.ToInt32(k));
Console.WriteLine("递归加到{0}的和值:{1}",k,count);
Console.WriteLine("**********");
Console.WriteLine("**********");
Console.Write("在1-2+3-4+5-6+7-8+9......规则下输入一个大于1的范围数:");
string j = Console.ReadLine();
int ov = Sum(Convert.ToInt32(j));
Console.WriteLine("递归1到{0}的和是:{1}",j,ov);
Console.WriteLine("**********");
Console.WriteLine("**********");
Console.Write("在1,1,2,3,5,8,13,21,34....的规则下确定第几个数:");
string l = Console.ReadLine();
int m = Confirm(Convert.ToInt32(l));
Console.WriteLine("1,1,2,3,5,8,13,21,34....的第{0}的数是{1}",l,m);
}
//递归加法:1到i
public int sun(int i)
{
if (i > 0)
{
return i + sun(i - 1);
}else{
return 0;
}
}
//加法:1-2+3-4+5-6+7-8+9......的和
private int Sum(int i)
{
if (i>0&&i % 2 == 0)
{
return i * (-1) + Sum(i - 1);
}else if(i > 0 && i % 2 != 0)
{
return i + Sum(i - 1);
}else{
return 0;
}
}
//递归计算:1,1,2,3,5,8,13,21,34....的第l个数
public int Confirm(int e)
{
if (e <= 0)
{
return 0;
}else if(e>0 && e <= 2)
{
return 1;
}else{
return Confirm(e - 1) + Confirm(e - 2);
}
}
以上是关于关于递归算法的一些常见问题的主要内容,如果未能解决你的问题,请参考以下文章