可以使用数组中的所有数字将一个数整除为3

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

null
Input : arr[] = {40, 50, 90}Output : YesWe can construct a number which isdivisible by 3, for example 945000. So the answer is Yes. Input : arr[] = {1, 4}Output : NoThe 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 <bits/stdc++.h>
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<n; i++)
remainder = (remainder + arr[i]) % 3;
// Return true if remainder is 0.
return (remainder == 0);
}
// Driver code
int main()
{
int arr[] = { 40, 50, 90 };
int n = sizeof (arr) / sizeof (arr[0]);
if (isPossibleToMakeDivisible(arr, n))
printf ( "Yes" );
else
printf ( "No" );
return 0;
}


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<n; i++)
remainder = (remainder + arr[i]) % 3 ;
// Return true if remainder is 0.
return (remainder == 0 );
}
public static void main (String[] args)
{
int arr[] = { 40 , 50 , 90 };
int n = 3 ;
if (isPossibleToMakeDivisible(arr, n))
System.out.print( "Yes" );
else
System.out.print( "No" );
}
}
// Code Contributed by Mohit Gupta_OMG <(0_o)>


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

<?php
// PHP program to find if it is possible
// to make a number divisible by 3 using
// all digits of given array
function isPossibleToMakeDivisible( $arr , $n )
{
// Find remainder of sum
// when divided by 3
$remainder = 0;
for ( $i = 0; $i < $n ; $i ++)
$remainder = ( $remainder + $arr [ $i ]) % 3;
// Return true if remainder is 0.
return ( $remainder == 0);
}
// Driver code
$arr = array ( 40, 50, 90 );
$n = sizeof( $arr );
if (isPossibleToMakeDivisible( $arr , $n ))
echo ( "Yes" );
else
echo ( "No" );
// This code is contributed by Ajit.
?>


Javascript

<script>
// javascript program to find if it is possible
// to make a number divisible by 3 using
// all digits of given array
function isPossibleToMakeDivisible(arr , n)
{
// Find remainder of sum when divided by 3
var remainder = 0;
for (i=0; i<n; i++)
remainder = (remainder + arr[i]) % 3;
// Return true if remainder is 0.
return (remainder == 0);
}
var arr = [ 40, 50, 90 ];
var n = 3;
if (isPossibleToMakeDivisible(arr, n))
document.write( "Yes" );
else
document.write( "No" );
// This code contributed by Princi Singh
</script>


输出:

Yes

时间复杂度:O(n)

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享