给定一个整数数组,任务是找出是否有可能使用这些数字的所有数字构造一个整数,使其可以被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