Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3624034
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 18, 20262026-05-18T23:27:27+00:00 2026-05-18T23:27:27+00:00

I like solving algorithm problems on TopCoder site. I can implement most of the

  • 0

I like solving algorithm problems on TopCoder site. I can implement most of the basic recursive problems such as backtracking, dfs… However, whenever I encounter a complex recursion, it often takes me hours and hours. And when I check the solution of other coders, I feel so shame on myself. I’ve been programming for almost 5 years. I can see the significant improvement on other programming technique such as manipulating string, graphics, GUI … but not recursion? Can anyone share some experiences how to approach a recursive problems? Thanks!

Update

I’m familiar with Unit-Test methodology. Even before I knew Unit Test, I often write some small test functions to see if the result is what I want. When facing recursive problems, I lost this ability naturally. I can insert several “cout” statements to see the current result, but when the call is nested deeply, I no longer can keep track of it. So most of the time, either I solved it using pencil and paper first or I’m done ( can’t use regular method like breaking it into smaller pieces ). I feel like recursion has to work as a whole.

Best regards,
Chan

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-18T23:27:27+00:00Added an answer on May 18, 2026 at 11:27 pm

    This is a very good question.

    The best answer I have is factoring: divide and conquer. This is a bit tricky in C++ because it doesn’t support higher order functions well, but you can do it. The most common routines are things like maps and folds. [C++ already has a cofold called std::accumulate].

    The other thing you have to consider carefully is how to structure your code to provide tail recursion where possible. One soon gets to recognize tail calls and think of them as loops, and this reduces the brain overload from recursing everywhere quite a bit.

    Another good technique is called trust. What this means is, you write a call to a function you may not even have defined yet, and you trust that it will do what you want without further ado. For example you trust it will visit the nodes of a tree bottom up correctly, even if it has to call the function you’re currently writing. Write comments stating what the pre- and post-conditions are.

    The other way to do this (and I’m sorry about this) is to use a real programming language like Ocaml or Haskell first, then try to translate the nice clean code into C++. This way you can see the structure more easily without getting bogged down with housekeeping details, ugly syntax, lack of localisation, and other stuff. Once you have it right you can translate it to C++ mechanically. (Or you can use Felix to translate it for you)

    The reason I said I’m sorry is .. if you do this you won’t want to write C++ much anymore, which will make it hard to find a satisfying job. Example, in Ocaml, just add elements of a list (without using a fold):

    let rec addup (ls: int list) : int = match ls with 
    | [] -> 0                (* empty list *)
    | h::t -> h + addup t    (* add head to addup of tail: TRUST addup to work *)
    

    This isn’t tail recursive, but this is:

    let addup (ls: int list) : int = 
      let rec helper ls sum = match ls with
      | [] -> sum
      | h :: t -> helper t (h+ sum)
      in
    helper ls 0
    

    The transformation above is well known. The second routine is actually simpler when you understand what it is doing. I’m too lazy to translate this into C++, perhaps you can transcode it.. (the structure of the algorithms alone should be enough to figure out the syntax)

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Like many others on this site I am considering a move to ASP.NET MVC
Like the Delicious submission bookmark-let, I'd like to have some standard JavaScript I can
Like most *nix people, I tend to play with my tools and get them
Like most developers, I'm a business developer, which in essence consists of slapping a
Like it says.
Like many of you, I use ReSharper to speed up the development process. When
Like many companies that require all access be through stored procedures, we seem to
Like the title says Where and How (i.e. if encrypted, with what method) does
Like the title says, how do you create custom code snippets in Visual Studio
Like the title says, If I place an app_offline.htm in the application root, will

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.