zoukankan      html  css  js  c++  java
  • 利用可变参数打印出递归函数的树形输出

    对于要跟踪递归函数的调用步骤,可使用可变参数##__VA_ARGS__来定义宏来输出,下面以求解Fibonacci为例说明:

     1 #include <cstdio>
     2 
     3 #define Log(level, fmt, ...) do{if(true) 
     4     {for(int i = 0; i < level - 1; i++) printf("--");            
     5 printf(fmt"
    ", ##__VA_ARGS__);} }while(false)
     6 
     7 unsigned fibonacci(unsigned n, int level)
     8 {
     9     Log(level, "fibonacci(%d)", n);
    10     if(n < 2)
    11         return n;
    12     else 
    13         return fibonacci(n - 1, level + 1) + fibonacci(n - 2, level + 1);
    14 }
    15 
    16 int main()
    17 {
    18     fibonacci(6, 1);
    19     return 0;
    20 }
    View Code

    输出结果为:

  • 相关阅读:
    idea
    C#
    mysql
    .net5
    .net5
    .net5
    .net5
    .net5
    .net5
    .net5
  • 原文地址:https://www.cnblogs.com/wwblog/p/3959758.html
Copyright © 2011-2022 走看看