📌  相关文章
📜  可以使用数组中的所有数字将其整除为3

📅  最后修改于: 2021-04-27 18:50:30             🧑  作者: Mango

给定一个整数数组,任务是查找是否有可能使用这些数字的所有数字来构造一个整数,以使其可以被3整除。如果可能,则打印“是”,否则打印“否” 。
例子:

Input : arr[] = {40, 50, 90}
Output : Yes
We can construct a number which is
divisible by 3, for example 945000. 
So the answer is Yes. 

Input : arr[] = {1, 4}
Output : No
The only possible numbers are 14 and 41,
but both of them are not divisible by 3, 
so the answer is No.

这个想法基于这样一个事实,即一个数字可以被3整除,而其数字的总和可以被3整除。因此,我们简单地找到数组元素的和。如果将总和除以3,我们的答案是“是”,否则“否”。

CPP
// C++ program to find if it is possible
// to make a number divisible by 3 using
// all digits of given array
#include 
using namespace std;
 
bool isPossibleToMakeDivisible(int arr[], int n)
{
    // Find remainder of sum when divided by 3
    int remainder = 0;
    for (int i=0; i


Java
// Java program to find if it is possible
// to make a number divisible by 3 using
// all digits of given array
 
import java.io.*;
import java.util.*;
 
class GFG
{
    public static boolean isPossibleToMakeDivisible(int arr[], int n)
    {
        // Find remainder of sum when divided by 3
        int remainder = 0;
        for (int i=0; i


Python3
# Python program to find if it is possible
# to make a number divisible by 3 using
# all digits of given array
 
def isPossibleToMakeDivisible(arr, n):
    # Find remainder of sum when divided by 3
    remainder = 0
    for i in range (0, n):
        remainder = (remainder + arr[i]) % 3
 
    # Return true if remainder is 0.
    return (remainder == 0)
 
# main()
 
arr = [40, 50, 90 ];
n = 3
if (isPossibleToMakeDivisible(arr, n)):
    print("Yes")
else:
    print("No")
 
# Code Contributed by Mohit Gupta_OMG <(0_o)>


C#
// C# program to find if it is possible
// to make a number divisible by 3 using
// all digits of given array
using System;
 
class GFG
{
    public static bool isPossibleToMakeDivisible(int []arr, int n)
    {
        // Find remainder of sum when divided by 3
        int remainder = 0;
         
        for (int i = 0; i < n; i++)
            remainder = (remainder + arr[i]) % 3;
 
        // Return true if remainder is 0.
        return (remainder == 0);
    }
 
    public static void Main ()
    {
        int []arr = { 40, 50, 90 };
        int n = 3;
         
        if (isPossibleToMakeDivisible(arr, n))
                        Console.WriteLine("Yes");
        else
            Console.WriteLine("No");
    }
}
 
// This code is contributed by vt_m


PHP


Javascript


输出:

Yes

时间复杂度:O(n)