Open In App

Difference between sums of odd and even digits

Last Updated : 20 Oct, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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++




// C++ program for above approach
#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;
}
// This code is contributed by Kirti Agarwal(kirtiagarwal23121999)


Java




// Java equivalent of above code
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




# Python program for the above approach
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
 
 
# driver code
n = 1243
if(isDiff0(n)):
    print("Yes")
else:
    print("No")


C#




// C# Program for the above approach
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




// JavaScript prgraom for the above approach
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");
     
    // THIS CODE IS CONTRIBUTED BY YASH AGARWAL(YASHAGAWRAL2852002)


Output

Yes

Time Complexity: O(log n),
Auxiliary space: O(1)



 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads