Open In App

Check whether given floating point number is even or odd

Improve
Improve
Like Article
Like
Save
Share
Report

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)

 


Last Updated : 20 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads