Java Program for Difference between sums of odd and even digits
Write a java program for a given long integer, the task is to find if the difference between sum of odd digits and sum of even digits is 0 or not. The indexes start from zero (0 index is for leftmost digit).
Examples:
Input : 1212112
Output : Yes
Explanation:
the odd position element is 2+2+1=5
the even position element is 1+1+1+2=5
the difference is 5-5=0 equal to zero.
So print yes.Input :12345
Output : No
Explanation:
the odd position element is 1+3+5=9
the even position element is 2+4=6
the difference is 9-6=3 not equal to zero.
So print no.
Approach:
One by one traverse digits and find the two sums. If difference between two sums is 0, print yes, else no.
Below is the implementation of the above approach:
Java
// Java equivalent of above code public class Main { // Function to check if the difference between the sum // of alternating digits in 'n' is 0 public static boolean isDiff0( int n) { // Variable to store the sum of alternating digits int first = 0 ; // Variable to store the sum of the other // alternating digits int second = 0 ; // A flag to alternate between 'first' and 'second' // sums boolean flag = true ; // Extract the last digit from 'n' while (n > 0 ) { int digit = n % 10 ; // Add 'digit' to 'first' if 'flag' is true if (flag) { first += digit; } // Add 'digit' to 'second' if 'flag' is false else { second += digit; } // Toggle the flag for the next digit flag = !flag; // Remove the last digit from 'n' n = n / 10 ; } if (first - second == 0 ) { // Return true if the difference between 'first' // and 'second'sums is 0 return true ; } // Otherwise, return false return false ; } public static void main(String[] args) { // The input number int n = 1243 ; // If isDiff0 returns true, print "Yes" if (isDiff0(n)) { System.out.println( "Yes" ); } // If isDiff0 returns false, print "No" else { System.out.println( "No" ); } } } |
Yes
Time Complexity:O(log n)
Auxiliary space: O(1)
Please refer complete article on Difference between sums of odd and even digits for more details!