A rescue robot has three jumping modes, which can jump distances of 1m, 2m and 3m respectively. Please use the program to realize the available jumping modes when the robot travels n meters.
The program language is not limited. When the distance n is large enough, the execution time of the program is as small as possible.
For example, when the distance is 4 meters, there are 7 kinds of output results:
1m,1m,1m,1m
1m,1m,2m
1m,2m,1m
1m,3m
2m,1m,1m
2m,2m
3m,1m
Thank you for inviting me.
This problem is obviously designed to examine your DP. I also don’t say much, directly put yards to come over:
cpp
void step(int n, std::string str) { if (n == 0) { std::cout << str << "\b " << std::endl; bracket If (n >= 1) step(n-1, str plus "1m,"); If (n >= 2) step(n-2, str plus "2m,"); If (n >= 3) step(n-3, str plus "3m,"); bracket
When
n == 4
When, call:step(4, "");
Output what you want as is.
Here is only the shortest code to express my thoughts, afraid of breaking the stack, to modify.