使用C++数组中所有数字构成一个能被3整除的数是否可行


在这个问题中,我们给定一个数组。我们的任务是检查是否可以使用数组元素的所有数字生成一个能被3整除的数。如果可以,则打印“Yes”,否则打印“No”。

让我们举个例子来理解这个问题

输入 − arr = {3, 5, 91, }

输出 − YES

解释 − 数字 5193 可以被 3 整除。所以,我们的答案是 YES。

为了解决这个问题,我们将检查它是否能被 3 整除。

3 的倍数 − 如果一个数字的各位数字之和可以被 3 整除,则该数字可以被 3 整除。

现在,我们将需要找到所有数组元素的总和。如果这个总和可以被 3 整除,那么就可以打印 YES,否则打印 No。

示例

程序展示了解决方案的实现

 在线演示

#include <iostream>
using namespace std;
bool is3DivisibleArray(int arr[]) {
   int n = sizeof(arr) / sizeof(arr[0]);
   int rem = 0;
   for (int i=0; i<n; i++)
      rem = (rem + arr[i]) % 3;
   return (rem == 0);
}
int main(){
   int arr[] = { 23, 64, 87, 12, 9 };
   cout<<"Creating a number from digits of array which is divisible by 3 ";
   is3DivisibleArray(arr)?cout<<"is Possible":cout<<"is not Possible";
   return 0;
}

输出

Creating a number from digits of array which is divisible by 3 is Possible

更新于: 2020年4月17日

594 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告