递归

2022-07-27  本文已影响0人  大龙10

书名:代码本色:用编程模拟自然系统
作者:Daniel Shiffman
译者:周晗彬
ISBN:978-7-115-36947-5
第8章目录

8.2 递归

1、康托尔集

2、有限递归

3、代码实现

void someFunction() {
    background(0); 在函数someFunction()中调用background()函数
}
int factorial(int n) {
      if (n == 1){
          return 1;
      } else {
          return n * factorial(n-1);
      }
}

4、示例

示例代码8-2 两次递归
用更复杂的方式实现drawCircle()函数:对于任意圆圈,在它的左右两边分别画一个半径减半的圆圈。

void setup() {
  size(640,360);  
}

void draw() {
  background(255);
  drawCircle(width/2,height/2,400); 
  noLoop();
}

// Recursive function
void drawCircle(float x, float y, float r) {
  stroke(0);
  noFill();
  ellipse(x, y, r, r);
  if(r > 2) {
    // Now we draw two more circles, one to the left
    // and one to the right
    drawCircle(x + r/2, y, r/2);
    drawCircle(x - r/2, y, r/2);
  }
}

5、运行结果

上一篇 下一篇

猜你喜欢

热点阅读