练习题四
一根竹竿长100m,每天砍掉一半,求第十天它的长度是多少(从第0天开始)
最初尝试:错误在每次调用函数时,变量重新初始化了,不能进行变化;
static void Fun2(int n)
{
float zhuGanLenth = 100f;
if ( n == 0 )
{
return;
}
zhuGanLenth /= 2;
Console.WriteLine(zhuGanLenth);
–n;
Fun2(n);
}
//******************此函数错误,zhuGanLenth会一直被重新赋值
以下为正确代码:
static double Fun2(double n)
{
if (n <= 0)
{
return 100 / 2;//这里放不变的,竹竿的长度不变。
}
return n = 1.0 / 2 * Fun2(n - 1);//返回的是一直在变的,每一次变为原来1/2。
}