We may come across various tricky programs in our day-to-day life. Maybe in technical interviews, coding tests, or C/C++ classrooms.
Here is a list of such programs:-
- Print text within double quotes (” “).
This may seem easy, but beginners may get puzzled while printing text within double quotes.
C
#include <stdio.h>
int main()
{
printf ( "\"geeksforgeeks\"" );
return 0;
}
|
C++
#include<iostream>
int main()
{
std::cout << "\"geeksforgeeks\"" ;
return 0;
}
|
Time Complexity: O(1)
Auxiliary Space: O(1)
- To check if two numbers are equal without using arithmetic operators or comparison operators.
The simplest solution for this is using the Bitwise XOR operator (^). We know that for two equal numbers XOR operator returns 0. We will use the XOR operator to solve this problem.
C
#include<stdio.h>
int main()
{
int x = 10;
int y = 10;
if ( !(x ^ y) )
printf ( " x is equal to y " );
else
printf ( " x is not equal to y " );
return 0;
}
|
C++
#include <iostream>
using namespace std;
int main()
{
int x = 10;
int y = 10;
if (!(x ^ y))
cout << " x is equal to y " ;
else
cout << " x is not equal to y " ;
return 0;
}
|
Time Complexity: O(1)
Auxiliary Space: O(1)
- Print all natural numbers up to N without using a semi-colon.
We use the idea of recursively calling the main function.
C
#include<stdio.h>
int N = 10;
int main()
{
static int x = 1;
if ( printf ( "%d " , x) && x++ < N && main())
{ }
return 0;
}
|
C++
#include<iostream>
using namespace std;
int N = 10;
int main()
{
static int x = 1;
if (cout << x << " " && x++ < N && main())
{ }
return 0;
}
|
Output
1 2 3 4 5 6 7 8 9 10
Time Complexity: O(1)
Auxiliary Space: O(1)
- To Swap the values of two variables without using any extra variable.
C
#include<stdio.h>
int main()
{
int x = 10;
int y = 70;
x = x + y;
y = x - y;
x = x - y;
printf ( "X : %d\n" , x);
printf ( "Y : %d\n" , y);
return 0;
}
|
C++
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x = 10;
int y = 70;
x = x + y;
y = x - y;
x = x - y;
cout << "X : " << x << "\n" ;
cout << "Y : " << y << "\n" ;
return 0;
}
|
Time Complexity: O(1)
Auxiliary Space: O(1)
- Program to find the Maximum and minimum of two numbers without using any loop or condition.
The simplest trick is-
C
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 15, b = 20;
printf ( "max = %d\n" , ((a + b) + abs (a - b)) / 2);
printf ( "min = %d" , ((a + b) - abs (a - b)) / 2);
return 0;
}
|
C++
#include<bits/stdc++.h>
int main ()
{
int a = 15, b = 20;
printf ( "max = %d\n" , ((a + b) + abs (a - b)) / 2);
printf ( "min = %d" , ((a + b) - abs (a - b)) / 2);
return 0;
}
|
Time Complexity: O(1)
Auxiliary Space: O(1)
- Print the maximum value of an unsigned int using One’s Complement (~) Operator in C.
Here is a trick to find the maximum value of an unsigned int using one’s complement operator:
C
#include<stdio.h>
int main()
{
unsigned int max;
max = 0;
max = ~max;
printf ( "Max value : %u " , max);
return 0;
}
|
C++
#include <iostream>
int main()
{
unsigned int max;
max = 0;
max = ~max;
std::cout << "Max value : " << max;
return 0;
}
|
Output
Max value : 4294967295
Time Complexity: O(1)
Auxiliary Space: O(1)
- To find the sum of two integers without using ‘+’ operator.
This is a very easy mathematics trick.
We know that a + b = – (-a-b). So this will work as a trick for us.
C
#include <stdio.h>
int main()
{
int a = 5;
int b = 5;
int sum = -( -a-b );
printf ( "%d" ,sum);
return 0;
}
|
C++
#include<iostream>
using namespace std;
int main()
{
int a = 5;
int b = 5;
int sum = -( -a-b );
cout << sum;
return 0;
}
|
Time Complexity: O(1)
Auxiliary Space: O(1)
- Program to verify the condition inside if block.
C
#include <stdio.h>
int main()
{
if (!( printf ( "geeks" )))
printf ( " geeks " );
else
printf ( "forgeeks " );
return 0;
}
|
C++
#include<iostream>
using namespace std;
int main()
{
if (!(cout << "geeks" ))
cout << " geeks " ;
else
cout << "forgeeks " ;
return 0;
}
|
Time Complexity: O(1)
Auxiliary Space: O(1)
- Program to divide an integer by 4 without using ‘/’ operator.
One of the most efficient ways to divide an integer by 4 is to use right shift operator (“>>”).
C++
#include<iostream>
using namespace std;
int main()
{
int n = 4;
n = n >> 2;
cout << n;
return 0;
}
|
C
#include <stdio.h>
int main()
{
int n = 4;
n = n >> 2;
printf ( " %d " ,n);
return 0;
}
|
Time Complexity: O(1)
Auxiliary Space: O(1)
- Program to check endianness of the computer.
C
#include <stdio.h>
int main()
{
unsigned int n = 1;
char *c = ( char *)&n;
if (*c)
printf ( "LITTLE ENDIAN" );
else
printf ( "BIG ENDIAN" );
return 0;
}
|
C++
#include <iostream>
int main()
{
unsigned int n = 1;
char *c = ( char *)&n;
if (*c)
std::cout << "LITTLE ENDIAN" ;
else
std::cout << "BIG ENDIAN" ;
return 0;
}
|
Time Complexity: O(1)
Auxiliary Space: O(1)
Last Updated :
14 Mar, 2024
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...