C++ 中数组中可整除对的数量
给定一个任意大小的包含整数元素的数组,任务是计算数组中对的数量,使得一对中的一个元素可以整除另一对中的元素。
数组是一种数据结构,可以存储相同类型元素的固定大小的顺序集合。数组用于存储数据集合,但通常将数组视为相同类型变量的集合更有用。
例如
Input − int arr[] = {1, 2, 3, 6} Output − count is 4
解释 - (1,2), (1,3), (1,6) 和 (3,6) 是一对,其中一对中的一个元素可以整除另一对,因为 1 可以整除任何数字,并且 3 可以整除 6。所以数量是 4。
Input − int arr[] = {2, 5, 10} Output − count is 2
解释 - (2, 10) 和 (5,10) 是一对,其中一对中的一个元素可以整除另一对,因为 2 可以整除 10,并且 5 可以整除 10。所以数量是 2。
下面程序中使用的解决方法如下
创建一个数组,例如 arr[]
使用 length() 函数计算数组的长度,该函数将根据数组中的元素返回一个整数值。
取一个临时变量,它将存储仅存在于数组中的元素的数量。
使用 for 循环,从 i 为 0 开始,到 i 小于数组大小结束
在循环内部,使用另一个循环,从 j 为 i+1 开始,到 j 小于大小结束
在循环内部,检查 arr[i] % arr[j] = 0 或 arr[j] % arr[i] = 0,如果是,则递增计数
返回计数
打印结果。
示例
#include <iostream> using namespace std; int divisibles(int a[], int size){ int result = 0; // Iterating through all pairs for (int i=0; i<size; i++){ for (int j=i+1; j<size; j++){ if (a[i] % a[j] == 0 || a[j] % a[i] == 0){ result++; } } } return result; } int main(){ int a[] = {1, 4, 7, 8, 9}; int size = sizeof(a) / sizeof(a[0]); cout <<"count is " <<divisibles(a, size); return 0; }
输出
如果我们运行上述代码,我们将得到以下输出:
count is 5
广告