Recursion

Recursion

Recursion

Recursion is the technique of making a function call itself. This technique provides a way to break complicated problems down into simple problems which are easier to solve.

Recursion may be a bit difficult to understand. The best way to figure out how it works is to experiment with it.

Recursion Example

Adding two numbers together is easy to do, but adding a range of numbers is more complicated. In the following example, recursion is used to add a range of numbers together by breaking it down into the simple task of adding two numbers:

Example

int sum(int k) {
  if (k > 0) {
    return k + sum(k - 1);
  } else {
    return 0;
  }
}

int main() {
  int result = sum(10);
  cout << result;
  return 0;
}        

Example Explained

When the sum() function is called, it adds parameter k to the sum of all numbers smaller than k and returns the result. When k becomes 0, the function just returns 0. When running, the program follows these steps:

10 + sum(9)
10 + ( 9 + sum(8) )
10 + ( 9 + ( 8 + sum(7) ) )
...
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + sum(0)
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0        

Since the function does not call itself when k is 0, the program stops there and returns the result.

The developer should be very careful with recursion as it can be quite easy to slip into writing a function which never terminates, or one that uses excess amounts of memory or processor power. However, when written correctly recursion can be a very efficient and mathematically-elegant approach to programming.

要查看或添加评论,请登录

Towhidul Islam的更多文章

  • The Future of AI Powered Web Solutions: What Businesses Need to Know

    The Future of AI Powered Web Solutions: What Businesses Need to Know

    Artificial Intelligence is transforming the digital landscape, redefining how businesses interact with customers…

    5 条评论
  • Difference ways to create an Object following OOP:

    Difference ways to create an Object following OOP:

    In JavaScript, object creation in Object-Oriented Programming (OOP) can be in several ways. Here are some common…

  • Types of HTTP Status code.

    Types of HTTP Status code.

    In server responses, HTTP status codes are used to indicate the outcome of a client's request to the server. These…

  • Setting Up Nginx for Your Domain on Ubuntu

    Setting Up Nginx for Your Domain on Ubuntu

    Setting Up Nginx for Your Domain on Ubuntu This guide will walk you through the process of installing Nginx on an…

  • JavaScript Closures: A Detailed Explanation

    JavaScript Closures: A Detailed Explanation

    What is a Closure? A closure is a feature in JavaScript where an inner function has access to its own scope, the outer…

  • Virtualization.

    Virtualization.

    Virtualization is a technology that enables the creation of virtual instances of physical hardware, operating systems…

  • Time complexity.

    Time complexity.

    Imagine a classroom of 100 students in which you gave your pen to one person. You have to find that pen without knowing…

  • ls -l

    ls -l

    towhidul@towhidul-Aspire-V5-471G:~$ ls -l total 36 drwxr-xr-x 2 towhidul towhidul 4096 Feb 25 16:59 Desktop drwxr-xr-x…

  • Linux Command Line Basics

    Linux Command Line Basics

    Lab Environment Setup One can use an online bash interpreter to run all the commands that are provided as examples in…

  • React Component

    React Component

    React components are an integral part of building user interfaces with React, and they indeed make developers' lives…

社区洞察

其他会员也浏览了