//用递归算法实现1,1,2,3,5,8,13...的第30位数是多少;using System;{
public class program
{
static void Main()
{
for(int i=1;i<=30;i++)
{
Console.WriteLine( dg(i));
} }
public int dg(int n)
{
if (n <= 1 || n == 2)
{
return n;
}
if (n > 2)
{
return (dg(n - 1) + dg(n - 2));
}
}
}
}
//请问这段程序错在哪里??
public class program
{
static void Main()
{
for(int i=1;i<=30;i++)
{
Console.WriteLine( dg(i));
} }
public int dg(int n)
{
if (n <= 1 || n == 2)
{
return n;
}
if (n > 2)
{
return (dg(n - 1) + dg(n - 2));
}
}
}
}
//请问这段程序错在哪里??
解决方案 »
- winform 打印panel的内容不完整
- 新手问题多...大麻烦...我引用母板后,不调用按钮事件......
- winform应用程序如何实现登陆等待的效果
- C# 怎样实现 每隔5分钟执行某个函数一次 ??
- 100分求助:在DataGridView上如何截获鼠标的点击事件?
- 生成XML文件的问题
- Excel轉化成Datatable_高分求
- 求救:连接数据库问题!!!
- 我用文件打开对话框取得了一文件路径,想通过一按钮响应,记录到一个文件中,为什么下面的程序执行不了啊,在先等,急
- 使用C#是否可以实现实时监听数据库日志 读取和分析出数据库变更数据?
- 串口问题
- 关于ctl00$ContentPlaceHolder1$
{
if (n <= 1 || n == 2)
{
return n;
}
return (dg(n - 1) + dg(n - 2));
}
{
if (n == 1)
{
return 1;
}
else if(n==1 || n == 3)
{
return n-1;
}
else if (n > 3)
{
return dg(n - 1) + dg(n - 2);
}
}
public int dg(int n)
{
if (n == 1)
{
return 1;
}
else if(n==2 || n == 3)
{
return n-1;
}
else if (n > 3)
{
return dg(n - 1) + dg(n - 2);
}
}
public int dg(int n)
{
if (n <= 1)
{
return n;
}
if (n >= 2)
{
return (dg(n - 1) + dg(n - 2));
}
}
{
if (n <= 1 || n == 2)
{
return n; //此处有问题!!
}
if (n > 2)
{
return (dg(n - 1) + dg(n - 2));
}
}
-------------------------------------------
改成
public int dg(int n)
{
if( n < 1 )
{
return -1; //如过输入的数小于1,则报错
}
else
{
if (n == 1 || n == 2)
{
return 1; //注:此处应改为1
}
else
{
return (dg(n - 1) + dg(n - 2));
}
}
}
public int dg(int n)
{
if (n <= 1 || n == 2)
{
return n;
}
return (dg(n - 1) + dg(n - 2));
}即可...
其次dg方法不是静态的,不能在类program没有实例化的情况下调用
再次dg方法的逻辑错误,不能实现你的要求修改后代码如下using System;namespace XX//添加命名空间
{
public class program
{
static void Main()
{
for(int i=1;i<=30;i++)
{
Console.WriteLine( dg(i));
} }
public static int dg(int n)//声明为静态的
{
if (n <= 0)//应控制错误
{
return -1;
}
else if (n <= 2)
{
return 1;//应返回1
}
else
{
return (dg(n - 1) + dg(n - 2));
}
}
}
}