180 次浏览
在本教程中,我们将讨论一个程序,用于查找 mXn 矩阵左上角到右下角的所有可能路径的数量。我们将提供一个 mXn 矩阵。我们的任务是找到给定矩阵左上角到右下角的所有可能路径。示例:`#include ` `using namespace std;` `// 返回可能路径的数量` `int count_paths(int m, int n){` ` if (m == 1 || n == 1)` ` return 1;` ` return count_paths(m - 1, n) + count_paths(m, n - 1);` `} ` `int main(){` ` cout<<…
315 次浏览
在本教程中,我们将讨论一个程序,用于查找两个顶点之间路径的数量。我们将提供一个有向图。我们的任务是找到两个给定顶点之间所有可能的路径数量。示例:`#include ` `using namespace std;` `// 构造有向图` `class Graph{` ` int V;` ` list *adj;` ` void countPathsUtil(int, int, bool [], int &);` ` public:` ` // 构造函数` ` Graph(int V);` ` void addEdge(int u, int v);` ` int countPaths(int s, int d);` `};` `Graph::Graph(int V){` ` this->V = V;` ` adj ... 阅读更多
120 次浏览
在本教程中,我们将讨论一个程序,用于查找满足给定条件的所有可能的 N 位数的数量。我们将提供一个整数。我们的任务是检查哪些 N 位数满足 Number + Reverse(Number) = 10N -1。示例:`#include ` `using namespace std;` `// 返回数字的数量` `string count_num(int N){` ` if (N % 2 == 1)` ` return 0;` ` string result = "9";` ` for (int i = 1; i<…
203 次浏览
在本教程中,我们将讨论一个程序,用于查找大小为 2 或 3 且和为 3 的倍数的所有可能组的数量。在本教程中,我们将讨论一个程序,用于查找大小为 2 或 3 且和为 3 的倍数的所有可能组的数量。示例:`#include ` `using namespace std;` `// 返回 2 或 3 的对的数量` `int count_groups(int arr[], int n){` ` int c[3] = {0}, i;` ` int res = 0;` ` for (i=0; i>1);` ` res += c[1] * c[2];` ` res += (c[0] * (c[0]-1) * (c[0]-2))/6; ... 阅读更多
222 次浏览
在本教程中,我们将讨论一个程序,用于查找一个数的所有完全约数的数量。我们将提供一个数。我们的任务是计算给定数的所有完全约数。示例:`#include ` `using namespace std;` `// 检查完全平方数` `bool if_psquare(int n){` ` int sq = (int) sqrt(n);` ` return (n == sq * sq);` `} ` `// 返回完全约数的数量` `int count_pdivisors(int n){` ` int count = 0;` ` for (int i=1; i*i<…
168 次浏览
在本教程中,我们将讨论一个程序,用于查找给定字符串中所有回文子序列的数量。我们将提供一个字符串。我们的任务是找到给定字符串中可以生成的回文子序列的数量。示例:`#include ` `#include ` `using namespace std;` `// 返回回文子序列总数` `int count_palin(string str){` ` int N = str.length();` ` // 创建一个二维数组` ` int cps[N+1][N+1];` ` memset(cps, 0 ,sizeof(cps));` ` for (int i=0; i<…
140 次浏览
在本教程中,我们将讨论一个程序,用于查找是回文数平方的回文数的数量。我们将提供两个值 L 和 R。我们的任务是在给定范围内找到超级回文数的数量。超级回文数是指其本身及其平方都是回文数的数。示例:`#include ` `using namespace std;` `// 检查数字是否是回文数` `bool if_palin(int x){` ` int ans = 0;` ` int temp = x;` ` while (temp > 0){` ` ans = 10 * ans + ... 阅读更多
170 次浏览
在本教程中,我们将讨论一个程序,用于查找字符串中回文子串的数量。我们将提供一个字符串。我们的任务是计算给定字符串中长度大于 3 的回文子串的数量。示例:`#include ` `using namespace std;` `// 计数回文串` `int count_pstr(char str[], int n){` ` int dp[n][n];` ` memset(dp, 0, sizeof(dp));` ` bool P[n][n];` ` memset(P, false , sizeof(P));` ` for (int i= 0; i< n; i++)` ` P[i][i] = true;` ` for (int i=0; i<…
199 次浏览
在本教程中,我们将讨论一个程序,用于查找具有给定 XOR 的对的数量。我们将提供一个数组和一个值。我们的任务是找到 XOR 等于给定值的对的数量。示例:`#include ` `using namespace std;` `// 返回 XOR 等于给定值的对的数量` `int count_pair(int arr[], int n, int x){` ` int result = 0;` ` // 处理重复值` ` unordered_map m;` ` for (int i=0; i<…
125 次浏览
在本教程中,我们将讨论一个程序,用于查找数组中在 K 位上不同的对的数量。我们将提供一个数组和一个整数 K。我们的任务是找到其二进制表示中相差 K 位的对的数量。示例:`#include ` `using namespace std;` `// 计算二进制表示中的位数` `int count_bit(int n){` ` int count = 0;` ` while (n) {` ` if (n & 1)` ` ++count;` ` n >>= 1;` ` } ` ` return count;` `} ... 阅读更多