假设我们有一个正数 n。我们必须找到所有加起来等于该数字的正数组合。这里我们只需要组合,不需要排列。对于值 n = 4,将有 [1, 1, 1, 1],[1, 1, 2],[2, 2],[1, 3],[4]我们将使用递归来解决这个问题。我们有一个数组来存储组合,我们将使用递归方法填充该数组。每个组合将按元素的递增顺序存储。示例 #include using namespace std; void getCombination(int arr[], int index, int num, int decrement) { if (decrement < 0) return; if (decrement == 0){ for (int i = 0; i < index; i++) cout
问题陈述 给定一个数字 N,我们必须找到表示 N 为其和的最小回文数。如果 N = 15,则需要 2 个回文数,即 8 和 7。算法 1. 以排序的方式生成直到 N 的所有回文数 2. 找到其和为 N 的最小子集的大小 示例 #include #include #include #include using namespace std; vector table; int createPalindrome(int input, bool isOdd){ int n = input; int palindrome = input; if (isOdd) n /= 10; while (n > ... 阅读更多
问题陈述 给定一本 N 页的书,任务是计算到达给定所需页面 K 的最小翻页次数。我们可以从书的正面(即从第 1 页)或书的背面(即第 N 页)开始翻页。除第一页(仅有背面)和最后一页(可能只有背面,取决于书的页数)外,每一页都有两面,正面和背面。如果 N = 5 且 K = 4,则我们必须翻转最小 1 ... 阅读更多