# Oddly Even Problem Statement Given A Maximum Of 100 Digit Numbers As Input, Find The Difference Between The Sum Of Odd And Even Position Digits

Fri, 16 Apr, 2021

## ODDLY EVEN

(TCS Ninja – Aug 2019 Slot 3)

## Problem

Given a maximum of 100 digit numbers as input, find the difference between the sum of odd and even position digits

### Test Cases

#### Case 1

• Input: 4567
• Expected Output: 2

Explanation: Odd positions are 4 and 6 as they are pos: 1 and pos: 3, both have sum 10. Similarly, 5 and 7 are at even positions pos: 2 and pos: 4 with sum 12. Thus, difference is 12 – 10 = 2

#### Case 2

• Input: 5476
• Expected Output: 2

#### Case 3

• Input: 9834698765123
• Expected Output: 1

## Solution in C

``````#include<stdio.h>
#include<string.h>
#include <stdlib.h>

int main()
{
int odd = 0,even = 0,i = 0, n,diff;
long long num;
scanf("%lld",&num);    //get the input up to 100 digit

while(num != 0){
if(i%2==0){
even = even + num%10;
num = num/10;
i++;
}
else{
odd = odd + num%10;
num = num/10;
i++;
}

}

printf("%d",abs(odd - even));

return 0;
}``````

## Solution in Java

``````import java.util.*;
public class Main
{
public static void main(String[] args) {
Scanner sin = new Scanner(System.in);
String s=sin.nextLine();

long num = 0, num1 = 0;
num=num + s.charAt(0)-'0';

for(int i=1;i<s.length();i++)
{
if(i%2==0)
num = num + s.charAt(i)-'0';
else
num1 = num1 + s.charAt(i)-'0';
}
System.out.println(Math.abs(num-num1));
}
}``````

## Solution in Python

``````num = [int(d) for d in str(input("Enter the number:"))]
even,odd = 0,0
for i in range(0,len(num)):
if i % 2 ==0:
even = even + num[i]
else:
odd = odd + num[i]

print(abs(odd-even))``````

## Solution in C++

``````#include <iostream>
#include <string.h>
#include <stdlib.h>

using namespace std;
// this solution is submitted by Selfcode
int main()
{
int a = 0,b = 0,i = 0, n;
char num[100];

cout<< "Enter the number:";
cin>> num;    //get the input up to 100 digit
n = strlen(num);
while(n>0)
{
if(i==0)         //add even digits when no of digit is even and vise versa
{
a+=num[n-1]-48;
n--;
i=1;
}
else            //add odd digits when no of the digit is even and vice versa
{
b+=num[n-1]-48;
n--;
i=0;
}
}
cout<< abs(a-b); //print the difference of odd and even

return 0;
}``````