10K+ 次查看
在本教程中,我们将编写一个程序,使用位运算符将给定的两个数字相乘。左移 (<<) 用于除法。两个数字 x、y 的乘积可以写成 x * y = (x * 2) * (y / 2),如果 y 为偶数,否则等于 x * y = (x * y) * (y / 2) + x。因此,每当第二个数字变成奇数时,将第一个数字添加到结果中。让我们看看解决问题的步骤。算法初始化两个数字。编写一个循环,直到第二个数字变成... 阅读更多
286 次查看
我们可以使用左移 (
300 次查看
要获得 n * 3.5 的结果,我们需要计算 (n * 2) + n + (n / 2)。将位向左移动 1 位将得到 n * 2,将位向右移动 1 位将得到 n / 2。将它们加起来得到结果。n * 3.5 = (n * 2) + n + (n / 2)您可以提交不同的 n 值来验证上述等式。让我们看一些例子。输入 2 7 10 输出 7 24 35 算法初始化数字 n。使用左移位运算符查找 n * 2 使用... 阅读更多
1K+ 次查看
给定一个数字 n,我们需要找到直到 n 的 3 或 7 的倍数的计数。让我们看一个例子。输入 100 输出 43 直到 100,总共有 43 个 3 或 7 的倍数。算法初始化数字 n。将计数初始化为 0。编写一个循环,从 3 迭代到 n。如果当前数字可以被 3 或 7 整除,则递增计数。实现以下是 C++ 中上述算法的实现#include using namespace std; int getMultiplesCount(int n) { int count = 0; for (int i = 3; i <= n;
490 次查看
我们可以使用 % 运算符毫无障碍地找到倍数。但是,问题说明我们不能使用 % 运算符。在这里,我们使用 + 运算符。我们可以通过将 3 或 5 加到前一个倍数来获得倍数。让我们看一个例子。输入 15 输出 1 2 3 - 3 的倍数 4 5 - 5 的倍数 6 - 3 的倍数 7 8 9 - 3 的倍数 10 - 5 的倍数 11 12 - 3 的倍数 13 14 15 - 3 和 5 的倍数算法初始化数字 n。初始化两个数字以跟踪下一个... 阅读更多
739 次查看
给定一个链表,我们必须将最后一个元素移动到前面。让我们看一个例子。输入 1 -> 2 -> 3 -> 4 -> 5 -> NULL 输出 5 -> 1 -> 2 -> 3 -> 4 -> NULL 算法初始化链表。如果链表为空或只有一个节点,则返回。查找链表的最后一个节点和倒数第二个节点。将最后一个节点作为新的头部。更新倒数第二个节点的链接。实现以下是 C++ 中上述算法的实现#include using namespace std; struct Node { int data; struct Node* next; }; void ... 阅读更多
483 次查看
277 次查看
给定一个包含随机整数和零的链表。我们必须将所有零移动到链表的前面。让我们看一个例子。输入 3 -> 0 -> 1-> 0 -> 0 -> 1 -> 0 -> 0 -> 3 -> NULL 输出 0->0->0->0->0->3->1->1->3->NULL 算法初始化链表。如果链表为空或只有一个节点,则返回。分别用第二个节点和第一个节点初始化两个节点以跟踪当前节点和前一个节点。遍历链表,直到到达末尾。如果当前节点为 0,则将其设置为新的头部。更新当前节点和前一个节点的值... 阅读更多
707 次查看
在本教程中,我们将编写一个程序,将所有零移动到数组的前面,并将所有一移动到数组的末尾。给定一个包含零和一以及随机整数的数组。我们必须将所有零移动到数组的开头,并将所有一移动到数组的末尾。让我们看一个例子。输入 arr = [4, 5, 1, 1, 0, 0, 2, 0, 3, 1, 0, 1] 输出 0 0 0 0 4 5 2 3 1 1 1 1 算法初始化数组。将索引初始化为 1。遍历给定数组。如果当前元素不为零,则更新索引处的... 阅读更多
3K+ 次查看
给定一个包含多个零的数组。我们必须将数组中的所有零移动到末尾。让我们看一个例子。输入 arr = [4, 5, 0, 3, 2, 0, 0, 0, 5, 0, 1] 输出 4 5 3 2 5 1 0 0 0 0 0 算法初始化数组。将索引初始化为 0。遍历给定数组。如果当前元素不为零,则使用当前元素更新索引处的数值。递增索引。编写一个循环,从上述索引迭代到 n 将所有元素更新为 0。实现以下是 C++ 中上述算法的实现#include ... 阅读更多