248 次浏览
在这里,我们将了解如何计算任何数字的阶乘结果的末尾零的个数。所以如果 n = 5,则 5! = 120。只有一个末尾零。对于 20!,它将是 4 个零,因为 20! = 2432902008176640000。最简单的方法就是计算阶乘并计算 0 的个数。但是这种方法对于较大的 n 值会失败。所以我们将采用另一种方法。如果质因数是 2 和 5,则会出现末尾零。如果我们计算 2 和 5 的个数,我们就可以得到结果。对于 ... 阅读更多
113 次浏览
在本节中,我们将看到如果给定一个包含 n 个数字的数组,我们必须检查是否使用这些数字的所有元素创建一个数字,该数字是否可被 3 整除。如果数组元素为 {15, 24, 23, 13},则我们可以创建整数如 15242313。它可以被 3 整除。算法checkDivThree(arr)开始 rem := 0 对于 arr 中的每个元素 e,执行 rem := (rem + e) mod 3 完成 如果 rem 为 0,则 返回 true 结束 ... 阅读更多
99 次浏览
这里我们将看到一个问题。我们将添加两个数组元素并将它们存储到另一个数组中。但我们将遵循一些约束条件。这些约束条件如下所示-加法应从两个数组的第 0 个索引开始如果总和超过一位数字,则将其拆分,并将每个数字放置到相应的位上较大输入数组的剩余数字将存储在输出数组中让我们看看算法以了解思路。算法addArrayConstraints(arr1, arr2)开始 定义空向量 out i := 0 当 i 小于 arr1.length 和 arr2.length 时,执行 ... 阅读更多
261 次浏览
在本节中,我们将看到一个有趣的问题。假设给定一个数字。我们必须将此数字增加 1。这是一个非常简单的任务。但是在这里,我们将数字作为数组放置。该数字的每个数字都作为数组的元素放置。如果数字是 512,则它将存储为 {5, 1, 2}。而且我们必须使用递归方法增加数字。让我们看看算法以获得清晰的思路。算法increment(arr, n, index)最初 index 的默认值为 0开始 如果 index < n,则 ... 阅读更多
143 次浏览
在这里,我们将了解如何将 1 加到存储在链表中的数字。在链表中,存储了数字的每一位。如果数字是 512,则它将存储如下所示-512 = (5)-->(1)-->(2)-->NULL我们将列表提供给 increment 函数。这将在向其添加 1 后返回另一个列表。这里我们使用 C++ STL 链表。让我们看看算法以获得更好的思路。算法incrementList(l1)开始 carry := 1 res := 一个空列表 对于 l1 中的每个节点 n,从后到前扫描, ... 阅读更多
233 次浏览
这里我们将看到一个有趣的问题。假设给定一个大小为 n 的二进制数组。这里 n > 3。true 值或 1 值表示活动状态,而 0 或 false 表示非活动状态。还给出了另一个数字 k。我们必须在 k 天后找到活跃或非活跃的细胞。每天第 i 个细胞的状态将处于活跃状态,如果左右细胞不相同,如果它们相同,则它将处于非活跃状态。最左侧和最右侧的单元格在其前面和后面没有单元格。所以最左侧和 ... 阅读更多
368 次浏览
迷宫中的老鼠问题是回溯法中众所周知的问题之一。在这里,我们将看到这个有点变化的问题。假设给定一个 NxN 迷宫 M。起点是左上角 M[0, 0],终点是右下角 M[N – 1, N - 1]。一只老鼠放在起点。我们的目标是找到一条从起点到终点的路径,老鼠可以通过该路径到达目的地。这里老鼠可以跳跃(变化)。现在有一些约束条件老鼠可以向 ... 阅读更多
在这里,我们将看到一个谜题。假设有一个程序如下所示,我们必须说出输出是什么以及为什么?示例#include using namespace std; int main() { int x = 0xab; ~x; cout
147 次浏览
在这里,我们将看到另一个名为煎饼排序的排序问题。这个问题很简单。我们有一个数组。我们必须对其进行排序。但是我们只能使用一个名为 rev(arr, i) 的操作。这将反转 arr 从 0 到第 i 位的元素。这个想法类似于选择排序。我们重复地将最大元素放在末尾,并减小数组的大小。让我们看看算法以了解思路。算法pancakeSort(arr, n)开始 size := n 当 size > 1 时,执行 index := arr 中从 [0 到 size 的最大元素的索引 ... 阅读更多
402 次浏览
在本节中,我们将看到一个有趣的问题。我们将看到两个代码片段。两者都包含两个嵌套循环。我们必须确定哪一个运行速度更快。(我们将假设编译器没有优化代码)。片段 1for(int i = 0; i < 10; i++){ for(int j = 0; j