Difference between sums of odd and even digits
Last Updated :
20 Oct, 2023
Given a long integer, we need 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:
C++
#include<bits/stdc++.h>
using namespace std;
bool isDiff0( int n){
int first = 0;
int second = 0;
bool flag = true ;
while (n > 0){
int digit = n % 10;
if (flag) first += digit;
else second += digit;
flag = !flag;
n = n/10;
}
if (first - second == 0) return true ;
return false ;
}
int main(){
int n = 1243;
if (isDiff0(n)) cout<< "Yes" ;
else cout<< "No" ;
return 0;
}
|
Java
public class Main {
public static boolean isDiff0( int n) {
int first = 0 ;
int second = 0 ;
boolean flag = true ;
while (n > 0 ) {
int digit = n % 10 ;
if (flag) first += digit;
else second += digit;
flag = !flag;
n = n / 10 ;
}
if (first - second == 0 ) return true ;
return false ;
}
public static void main(String[] args) {
int n = 1243 ;
if (isDiff0(n)) System.out.println( "Yes" );
else System.out.println( "No" );
}
}
|
Python
def isDiff0(n):
first = 0
second = 0
flag = True
while (n > 0 ):
digit = n % 10
if (flag):
first + = digit
else :
second + = digit
if (flag):
flag = False
else :
flag = True
n = int (n / 10 )
if (first - second = = 0 ):
return True
return False
n = 1243
if (isDiff0(n)):
print ( "Yes" )
else :
print ( "No" )
|
C#
using System;
public class BinaryTree{
static bool isDiff0( int n){
int first = 0;
int second = 0;
bool flag = true ;
while (n > 0){
int digit = n % 10;
if (flag) first += digit;
else second += digit;
flag = !flag;
n = n/10;
}
if (first - second == 0) return true ;
return false ;
}
public static void Main(){
int n = 1243;
if (isDiff0(n)) Console.Write( "Yes" );
else Console.Write( "No" );
}
}
|
Javascript
function isDiff0(n){
let first = 0;
let second = 0;
let flag = true ;
while (n > 0){
let digit = n % 10;
if (flag) first += digit;
else second += digit;
flag = !flag;
n = parseInt(n/10);
}
if (first - second == 0) return true ;
return false ;
}
let n = 1243;
if (isDiff0(n))
console.log( "Yes" );
else
console.log( "No" );
|
Time Complexity: O(log n),
Auxiliary space: O(1)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...