这个问题貌似没法用文字很好的解释
建议你还是Debug一步步看
或者找个周围懂的人当面问一下Debug的时候关注一下 Count的参数,以及在什么时点WriteLine的
建议你还是Debug一步步看
或者找个周围懂的人当面问一下Debug的时候关注一下 Count的参数,以及在什么时点WriteLine的
解决方案 »
- GridView后台代码获取数据库中的值进行超链接
- 求正则识别字符串格式
- 怎么取dataGridView鼠标选中的数值!
- 求一个Excel导入到SQL的实例,用C#语言写的(百分相赠)
- 奇怪的问题?跨线程访问textbox?
- 时间和时间的运算问题 本人(菜鸟)!!
- 为什么我在用Socket连接时总是有"在其上下文中,该请求的地址无效"这个错误?
- 新手 请各位帮忙!先谢了!!
- 使用MessageBox.Show()应该添加什么using?
- winform webBrowser控件 自定义右键菜单
- 请问关于OracleConnection.open()的疑问
- 用反射得到的PropertyInfo和直接TypeDescriptor.GetProperties(this, true)得到的由什么不同吗?
f(x) = f(x-1)+w(x); {x>0)
f(x) = 0;
那么你能解出什么呢?答案是 f(x) = w(1) + w(2) + ..... + w(x)。基于堆栈的程序方法调用(函数调用)也是一样的解题机制。
f(0) = 0;
如果要打印0个数,则什么也不做。这样两条规则,写成一个递归程序!
所以内层代码执行完了,才输出外层。
颠倒
Count (inval - 1);
Console.WriteLine ("{0}", inVal) ;
就对了。
执行Count (inval);
要等这个函数:
Count (inval - 1);
执行完毕,才会执行:
Console.WriteLine ("{0}", inVal) ;
----
执行Count (inval-1);
要等这个函数:
Count (inval - 2);
执行完毕,才会执行:
Console.WriteLine ("{0}", inVal-1) ;...
这就是递归了。
private void btn_Get_Click(object sender, EventArgs e)
{
int P_int_temp;//定义整型变量
if (int.TryParse(txt_value.Text, out P_int_temp))//为变量赋值
{
lb_result.Text = //输出计算结果
"计算结果为:" + Get(P_int_temp).ToString();
}
else
{
MessageBox.Show(//提示输入正确数值
"请输入正确的数值!","提示!");
}
} // 递归算法
// <param name="i">参与计算的数值</param>
// <returns>计算结果</returns>
int Get(int i)
{
if (i <= 0) //判断数值是否小于0
return 0; //返回数值0
else if (i >= 0 && i <= 2) //判断位数是否大于等于0并且小于等于2
return 1; //返回数值1
else //如果不满足上述条件执行下面语句
return Get(i - 1) + Get(i - 2); //返回指定位数前两位数的和
}
}