写一个简单的递归函数

 private void button1_Click(object sender, System.EventArgs e)
  {
   digui(this.textBox1.Text);
  }
  private void digui(string path)
  {
   DirectoryInfo di=new DirectoryInfo(path);
   FileInfo[] SubFiles=di.GetFiles();

   FileSystemInfo[] dirs = di.GetDirectories();    
   this.richTextBox1.Text+=di.Name+"/r/n";
   //添加当前目录下的文件
   foreach(FileInfo fileNext in SubFiles)
   {     
    this.richTextBox1.Text+="****"+fileNext.Name+"/r/n";
   }
   
   //子目录递归
   foreach(DirectoryInfo diNext in dirs)
   {  
    this.richTextBox1.Text+="****";
    digui(diNext.FullName);    

   }
  }

=========
效果:
a
****c.txt
****b
****e.txt
应该是:
a
****c.txt
****b
********e.txt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: def recursion_func(n): if n > 0: result = n + recursion_func(n-1) print(result) else: result = 0 return result recursion_func(4)答案:def recursion_func(n): if n > 0: result = n + recursion_func(n-1) print(result) else: result = 0 return resultrecursion_func(4) ### 回答2: 当我们提到递归函数时,指的是一个函数能够调用自身。这种编程技术在解决一些问题时非常有用。下面是一个用Python编写简单递归函数示例。 ```python def factorial(n): # 递归函数:计算一个正整数的阶乘 if n == 0: return 1 else: return n * factorial(n-1) ``` 在上述代码中,我们定义了一个名为`factorial`的递归函数。它接受一个参数n,用于计算n的阶乘。递归的思想是将问题分解成更小的子问题,直到达到基本情况,然后将结果返回并进行逐步合并。 函数的基本情况是当n等于0时,阶乘的结果为1。当n不为0时,函数将递归调用自身,并将(n-1)传递给下一次递归。递归函数将一直运行,直到n减少到0,然后开始进行逐步合并。 我们可以通过调用上述递归函数来测试它的功能,并输出结果。 ```python num = 5 result = factorial(num) print(f"{num}的阶乘是:{result}") ``` 输出: ``` 5的阶乘是:120 ``` 上述代码中,我们将数字5传递给`factorial`函数,函数将使用递归计算5的阶乘,并将结果打印出来。 如此,我们就成功地编写一个用Python实现的递归函数。这只是递归函数一个简单示例,你可以根据具体问题的特点编写适合的递归函数。 ### 回答3: 递归函数是一种函数调用自己的方法。在Python中,我们可以使用递归来解决一些复杂的问题,尤其是那些可以通过将问题划分为更小的子问题来解决的情况。 下面是一个简单的示例,展示了一个计算阶乘的递归函数: ```python def factorial(n): if n == 0: # 当n等于0时,返回1 return 1 else: return n * factorial(n-1) # 当n大于0时,递归调用自身,并返回n和n-1的乘积 ``` 在这个例子中,我们定义了一个名为`factorial`的函数,它接受一个参数`n`,表示要计算阶乘的数。如果`n`等于零,函数直接返回1。否则,函数将递归调用自己,传入参数`n-1`,然后将其结果与`n`相乘并返回。 这个函数可以用于计算任意正整数的阶乘。例如,如果我们调用`factorial(5)`,它的计算过程如下所示: ``` factorial(5) = 5 * factorial(4) = 5 * (4 * factorial(3)) = 5 * (4 * (3 * factorial(2))) = 5 * (4 * (3 * (2 * factorial(1)))) = 5 * (4 * (3 * (2 * (1 * factorial(0))))) = 5 * (4 * (3 * (2 * 1))) = 5 * (4 * (3 * 2)) = 5 * (4 * 6) = 5 * 24 = 120 ``` 所以,`factorial(5)`的结果是120。 递归函数在解决一些需要重复划分问题的情况下非常有用。但是,需要注意的是,过多的递归调用可能导致栈溢出错误,所以在使用递归函数时,要仔细设计递归结束条件,避免出现无限递归的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值