Skip to content
Related Articles

Related Articles

Check whether given floating point number is even or odd
  • Difficulty Level : Easy
  • Last Updated : 12 Apr, 2021

Given a floating-point number, check whether it is even or odd.
We can check whether a integer is even or odd by dividing its last digit by 2. But in case of floating point number we can’t check a given number is even or odd by just dividing its last digit by 2. For example, 100.70 is an odd number but its last digit is divisible by 2.
Examples : 

Input : 100.7
Output : odd

Input : 98.8
Output : even

Input : 100.70
Output : odd
Trailing 0s after dot do not matter.

Approach :

  • We start traversing a number from its LSB until we get a non-zero digit or ‘.’
  • If the number is divisible by 2 it is even else odd
  • If it is ‘.’ than it means decimal part of number is traversed and now we can check number is even or odd by dividing number by 2 whether it is 0 or non zero digit.

Below is the implementation of above approach :  

C++




// CPP program to check whether given floating
// point number is even or odd
#include <bits/stdc++.h>
using namespace std;
 
// Function to check even or odd.
bool isEven(string s)
{
    int l = s.length();
 
    // Loop to traverse number from LSB
    bool dotSeen = false;
    for (int i = l - 1; i >= 0; i--) {
 
        // We ignore trailing 0s after dot
        if (s[i] == '0' && dotSeen == false)
            continue;
 
        // If it is '.' we will check next digit and it
        // means decimal part is traversed.
        if (s[i] == '.') {
            dotSeen = true;
            continue;
        }
 
        // If digit is divisible by 2
        // means even number.
        if ((s[i] - '0') % 2 == 0)
            return true;
 
        return false;
    }
}
 
// Driver Function
int main()
{
    string s = "100.70";
    if (isEven(s))
        cout << "Even";
    else
        cout << "Odd";
    return 0;
}

Java




// Java program to check whether given floating
// point number is even or odd
import java.util.*;
import java.lang.*;
 
public class GfG {
 
    // Function to check even or odd.
    public static boolean isEven(String s1)
    {
        int l = s1.length();
        char[] s = s1.toCharArray();
 
        // Loop to traverse number from LSB
        boolean dotSeen = false;
        for (int i = l - 1; i >= 0; i--) {
 
            // We ignore trailing 0s after dot
            if (s[i] == '0' && dotSeen == false)
                continue;
 
            // If it is '.' we will check next digit and it
            // means decimal part is traversed.
            if (s[i] == '.') {
                dotSeen = true;
                continue;
            }
 
            // If digit is divisible by 2
            // means even number.
            if ((s[i] - '0') % 2 == 0)
                return true;
 
            return false;
        }
 
        return false;
    }
 
    // Driver function
    public static void main(String argc[])
    {
        String s = "100.70";
        if (isEven(s))
            System.out.println("Even");
        else
            System.out.println("Odd");
    }
}
/* This code is contributed by Sagar Shukla */

Python3




# Python 3 program to check
# whether given floating
# point number is even or odd
 
 
# Function to check
# even or odd.
def isEven(s) :
 
    l = len(s)
  
    # Loop to traverse
    # number from LSB
    dotSeen = False
    for i in range(l - 1, -1, -1 ) :
         
        # We ignore trailing
        # 0s after dot
        if (s[i] == '0'
           and dotSeen == False) :
             continue
  
        # If it is '.' we will
        # check next digit and it
        # means decimal part is
        # traversed.
        if (s[i] == '.') :
            dotSeen = True
              continue
         
        # If digit is
        # divisible by 2
        # means even number.
        if ((int)(s[i]) % 2 == 0) :
              return True
              
        return False     
     
 
# Driver Function
s = "100.70"
if (isEven(s)) :
    print("Even")
else :
    print("Odd")
     
# This code is contributed
# by Nikita Tiwari.

C#




// C# program to check whether given floating
// point number is even or odd
using System;
 
public class GfG {
 
    // Function to check even or odd.
    public static bool isEven(string s1)
    {
        int l = s1.Length;
 
        // char[] s = s1.toCharArray();
 
        // Loop to traverse number from LSB
        bool dotSeen = false;
        for (int i = l - 1; i >= 0; i--) {
 
            // We ignore trailing 0s after dot
            if (s1[i] == '0' && dotSeen == false)
                continue;
 
            // If it is '.' we will check next
            // digit and it means decimal part
            // is traversed.
            if (s1[i] == '.') {
                dotSeen = true;
                continue;
            }
 
            // If digit is divisible by 2
            // means even number.
            if ((s1[i] - '0') % 2 == 0)
                return true;
 
            return false;
        }
 
        return false;
    }
 
    // Driver function
    public static void Main()
    {
        string s1 = "100.70";
 
        if (isEven(s1))
            Console.WriteLine("Even");
        else
            Console.WriteLine("Odd");
    }
}
 
/* This code is contributed by Vt_m */

PHP




<?php
// PHP program to check
// whether given floating
// point number is even or odd
 
// Function to check
// even or odd.
function isEven($s)
{
    $l = strlen($s);
 
    // Loop to traverse
    // number from LSB
    $dotSeen = false;
    for ($i = $l - 1; $i >= 0; $i--)
    {
 
        // We ignore trailing
        // 0s after dot
        if ($s[$i] == '0' && $dotSeen == false)
        continue;
 
        // If it is '.' we will
        // check next digit and it
        // means decimal part is
        // traversed.
        if ($s[$i] == '.')
        {
            $dotSeen = true;
            continue;
        }
 
        // If digit is divisible by 2
        // means even number.
        if (($s[$i] - '0') % 2 == 0)
            return true;
             
        return false;    
    }
}
 
    // Driver Code
    $s = "100.70";
    if (isEven($s))
    echo "Even";
    else
    echo "Odd";
 
// This code is contributed by aj_36
?>

Javascript




<script>
 
// Javascript program to check
// whether given floating
// point number is even or odd
 
// Function to check
// even or odd.
function isEven(s)
{
    let l = s.length;
 
    // Loop to traverse
    // number from LSB
    let dotSeen = false;
    for (let i = l - 1; i >= 0; i--)
    {
 
        // We ignore trailing
        // 0s after dot
        if (s[i] == '0' && dotSeen == false)
        continue;
 
        // If it is '.' we will
        // check next digit and it
        // means decimal part is
        // traversed.
        if (s[i] == '.')
        {
            dotSeen = true;
            continue;
        }
 
        // If digit is divisible by 2
        // means even number.
        if ((s[i] - '0') % 2 == 0)
            return true;
             
        return false;   
    }
}
 
    // Driver Code
    let s = "100.70";
    if (isEven(s))
    document.write("Even");
    else
    document.write("Odd");
 
// This code is contributed by gfgking
 
</script>

Output : 

odd

Time Complexity: O(|s|)

Auxiliary Space: O(1)

 

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :