Print “Even” or “Odd” without using conditional statement
Last Updated :
30 Mar, 2023
Write a program that accepts a number from the user and prints “Even” if the entered number is even and prints “Odd” if the number is odd. You are not allowed to use any comparison (==, <,>,…etc) or conditional statements (if, else, switch, ternary operator,. Etc).
Method 1
Below is a tricky code can be used to print “Even” or “Odd” accordingly.
C++
#include <iostream>
using namespace std;
int main()
{
char arr[2][5] = { "Even" , "Odd" };
int no;
cout << "Enter a number: " ;
cin >> no;
cout << arr[no % 2];
getchar ();
return 0;
}
|
Java
import java.util.Scanner;
class GFG
{
public static void main(String[] args)
{
String[] arr = { "Even" , "Odd" };
Scanner s = new Scanner(System.in);
System.out.print( "Enter the number: " );
int no = s.nextInt();
System.out.println(arr[no% 2 ]);
}
}
|
Python3
arr = [ "Even" , "Odd" ]
print ( "Enter the number" )
no = int ( input ())
print (arr[no % 2 ])
|
C#
using System;
class GFG {
static void Main() {
string [] arr = { "Even" , "Odd" };
Console.Write( "Enter the number: " );
string val;
val = Console.ReadLine();
int no = Convert.ToInt32(val);
Console.WriteLine(arr[no%2]);
}
}
|
PHP
<?php
$arr = [ "Even" , "Odd" ];
$input = 5;
echo ( $arr [ $input % 2]);
?>
|
Javascript
<script>
let arr = [ "Even" , "Odd" ];
let no = prompt( "Enter a number: " );
document.write(arr[no % 2]);
</script>
|
Time Complexity: O(1)
Auxiliary Space: O(1)
Method 2
Below is another tricky code can be used to print “Even” or “Odd” accordingly. Thanks to student for suggesting this method.
C++
#include <iostream>
using namespace std;
int main()
{
int no = 8;
(no & 1 && cout << "odd" )|| cout << "even" ;
return 0;
}
|
C
#include<stdio.h>
int main()
{
int no = 8;
(no & 1 && printf ( "odd" ))|| printf ( "even" );
return 0;
}
|
Java
import java.util.*;
class GFG
{
public
static void main(String[] args)
{
int no = 8 ;
if ((no & 1 ) != 0 )
{
System.out.println( "odd" );
}
else
{
System.out.println( "even" );
}
}
}
|
Python3
no = 8
if no & 1 :
print ( "odd" )
else :
print ( "even" )
|
C#
using System;
class GFG
{
static void Main( string [] args)
{
int no = 8;
if ((no & 1) != 0)
{
Console.WriteLine( "odd" );
}
else
{
Console.WriteLine( "even" );
}
}
}
|
Javascript
let no = 8;
(no & 1 && console.log( "odd" )) || console.log( "even" );
|
Time Complexity: O(1)
Auxiliary Space: O(1)
Method 3
This can also be done using a concept known as Branchless Programming. Essentially, make use of the fact that a true statement in Python (other some other languages) evaluates to 1 and a false statement evaluates to false.
C++
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cout << "Enter a number: " ;
cin >> n;
if (n % 2 == 0) {
cout << "Even" << endl;
}
else {
cout << "Odd" << endl;
}
return 0;
}
|
Java
import java.io.*;
class GFG {
public static void main(String[] args)
{
int n = 8 ;
if (n % 2 == 0 ) {
System.out.println( "Even" );
}
else {
System.out.println( "Odd" );
}
}
}
|
Python3
n = 8
print ( "Even" * (n % 2 = = 0 ), "Odd" * (n % 2 ! = 0 ))
|
Javascript
let n = 8;
if (n%2==0)
document.write( "Even" );
else
document.write( "Odd" );
|
C#
using System;
class MainClass {
public static void Main()
{
Console.Write( "Enter a number: " );
int n = Convert.ToInt32(Console.ReadLine());
if (n % 2 == 0) {
Console.WriteLine( "Even" );
}
else {
Console.WriteLine( "Odd" );
}
}
}
|
Output
Enter a number: Even
Time Complexity: O(1)
Auxiliary Space: O(1)
Please write comments if you find the above code incorrect, or find better ways to solve the same problem
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...