作者:pupupupupupupupupu | 来源:互联网 | 2023-07-13 12:44
有的时候需要遍历所有的可能性,但是如果通过一般方法,由于这种可能性会有很多,循环有很多重,怎么办呢?这里面有一个前提就是,所有备选集合都是相同的,请思考如果是不同的呢?#inclu
有的时候需要遍历所有的可能性,但是如果通过一般方法,由于这种可能性会有很多,循环有很多重,怎么办呢?用递归可以的。
这里面有一个前提就是,所有备选集合都是相同的,请思考如果是不同的呢?
#include
#include #include /************************************************************************//* 题目来源: 从1-9中任选四个数字(数字可以有重复),使四个数字的和刚好是24。简单解释: 数字都是个位数,可以重复且之用加法,循环算法的核心就是使用四重循环穷举所有的数字组合,对每一个数字组合进行求和,判断是否是24扩展思考: N个数字的组合,可以重复,遍历所有组合*//************************************************************************/using namespace std;const unsigned int NUMBER_COUNT = 4;// Nconst int NUM_MIN_VALUE = 1;// the boundary of available number range const int NUM_MAX_VALUE = 6;// the boundary of available number range const unsigned int FULL_NUMBER_VALUE = 24;// summation is 24, this is one condition int counter = 0;void PrintNumbers(int *numbers, int NUMBER_COUNT){cout <