×

Palindrome using For loop in C++

A palindrome is a word, number, phrase, or other sequence of letters that reads the same backward as forward, such as 101 or MOM.

Like other programming languages, C++ also allows us to perform various operations. With the help of some examples, we'll explore how to verify the palindrome program in C++. Before we go into that, let's look at a palindrome. A palindrome is a result that gets the same value when the original value is reversed. Palindrome logic is as straightforward as it appears. For example, if you reverse MADAM, you'll get the same result: MADAM. That’s why, MADAM is a Palindrome value.

Here are some examples to see if they are palindromes or not:

  1. 242: It is a palindrome because the reverse is242.
  2. SOS: It's a palindrome because the reverse is SOS.
  3. 12341: This is not a palindrome because the reverse is 12341.
  4. java: It is not a palindrome because the reverse is avaj.

We can now tell whether the case, as mentioned earlier, is a palindrome or not. However, we solved the examples above orally. Let's look at how this verbal reasoning works in a computer language in C++. Before we move on the program, let's look at the algorithm to find the Palindrome.

The basic algorithm for testing Palindrome in a C++ program:

Step 1. Start

Step 2. Take input from the user.

Step 3. Save the value of the input into a temporary variable.

Step 4. Find the inverse of inserted value.

Step 5. Compare the values of both reverse and temporary variables.

Step 6. Print "it as a palindrome" if both values match.

Step 7. Print "it is not a palindrome" if both values do not match.

Step 8. Stop.

What is For Loop?

A for loop is a repetitive control structure that allows you to create a loop to execute a specific number of times efficiently.

The syntax of for loop

In C++, a for loop is written as

for (initialize; condition; increment) 
 {
 statement(x);
}

Algorithm:

Step 1: Start.

Step 2: Read a number, num.

Step 3: Assign temp=num and rev=0.

Step 4: Compute r=num/10;

                               Rev= rev*10+r;

                                Num= num/10;

Step 5: If( rev== num ) print it is a palindrome.

               Else print it is not a palindrome.

Step 6: End

Flowchart

Palindrome using For loop in C++

Program 1:

#include<iostream>
 using namespace std;
 int main()
 {
 int r, rev= 0, i, temp;
int num=12321;
 temp = num; //store number to temp
 for(i = num; i >0;i = i/ 10)
         {
               r= i % 10;
               rev = rev * 10 +r;
         }
 if(temp == rev)                                   
          {
                cout << "number is palindrome"; 
         }
 else
         {
             cout << "number is not a palindrome"; 
     
  }
 return 0;
 }

The output of the program

Number is Palindrome

Explanation

In the above program, we assigned a value 12321 to integer variable num. The integer's value is saved in yet another temporary variable, “temp”.

Then, the For loop is utilized, and the modulus operator is used to get the number's last digit. 1’s position is filled with the last digit, the 10's place with the second last, and so on. After this, the last digit is dividing the number by 10. When the value is zero, the loop ends. The reverse number is then compared to the integer value of the temporary variable. The number is a palindrome if both values are equal. The number isn't a palindrome if both aren’t equal. But, in this case, the number is Palindrome.

Program 2: Program to check whether the number taken from the user is Palindrome or not.

#include<iostream>
 using namespace std;
 int main()
 {
 int num, r, rev= 0, i, temp;
 cout << "Enter random number:"; 
 cin >> num;                       
// takes value from the user
 temp = num; //store number to temp
     for(i = num; i >0; i = i/ 10)
          {
            r= i % 10;
              rev = rev * 10 +r;
            
         }
    if(temp == rev)                                   
           {
            cout << "Given number is a palindrome"; 
           }
      else
        {
           cout << "Given number is not a palindrome"; 
      
}
   return 0;
 }

The output of the program

Enter a random number: 545
The given number is a palindrome.
Enter a lucky number: 9878
Given number is not a palindrome.

Explanation

The user must first enter the integer value and save it in a variable. The integer's value is subsequently saved in yet another temporary variable.

Then, For loop is utilized, and the modulus operator is used to get the number's last digit; 1’s position is filled with the last digit, the 10's place with the second last, and so on. After that, the last digit is deleted by dividing the number by 10.

When the value becomes zero, the loop ends. The reverse number is then compared to the integer value of the temporary variable. The number is a palindrome if both values are equal. The number isn't a palindrome if both aren’t equal. But, in this case, the number is Palindrome.

Program 3: Program to check whether the given array is palindrome

Algorithm:

Step 1: Start the program

Step 2: Set the flag to unset, i.e., int flag = 0.

Step 3: Execute the Loop through the array until it reaches the size n/2.

Step 4: In a loop, determine if arr[i]! = arr[n-i-1] then set the                               

             Flag to 1 and break.

Step 5: If the flag is set at the end of the loop, print "Not   

              Palindrome," otherwise print "Palindrome."

Step 6: End.

Code:

#include <iostream>
using namespace std;
 void palindrome(int arr[], int n)
{
    int flag = 0;
for(i = 0;  i<=n/2&&n!=0;i++)
          {
         if (arr[i] != arr[n - i - 1])
             {
                   flag = 1;
                   break;
            }
         }     
         // If flag is set then print Not Palindrome
        // else print Palindrome.
    if (flag == 1)
        cout << "Not Palindrome";
    else
        cout << "given array is Palindrome";
}
       // Driver program.
int main()
{
    int arr[] = { 1, 2, 3, 2, 1 };
    int n = sizeof(arr) / sizeof(arr[0]);
    palindrome(arr, n);
    return 0;
}

OUTPUT

Given array is a palindrome

What is reverse()  function?

Reverse() function is a predefined function in the Standard Template Library. It reverses the order of the elements in the range [first, last]. The time complexity is 0(n).

Algorithm:

Step 1: Start.

Step 2: Read str from the user.

Step 3: Assign str= temp.

Step 4: Use the reverse(str.begin(),str.end()).

Step 5: If( temp==str)

             Print it is a palindrome

             Else

             Print it is not a palindrome.

Step 6: Stop.

Program of Palindrome using Reverse() function:

#include<bits/stdc++.h>
using namespace std;
int main()
{
   string str;
   cout<<"Enter String:";
   getline(cin,str);
   string temp=str;
   reverse(str.begin(),str.end());
   if(temp==str)
      { 
           cout<<"it is a palindrome"<<endl;  
      } 
  else
      { 
           cout<< "it is not a palindrome" <<endl;
      }       
return 0;                         
}

The output of the program

Enter String: 12321
            It is a palindrome.
 Enter String: Shyam
            It is not a palindrome.              

Explanation

In this program, a string called "rev" is the inverse of the series "str" entered by the user. Then we compared them to see if they're identical or not. And, if both are identical, then the input string/number is palindrome. If the reversed string is not the same as the input string, the input string is not palindrome.


Related Topics

How to Reverse a String in C++ using While Loop

A while loop or while statement repeats all code of its body as long as a specific condition is satisfied. The loop ends if or when the condition no longer...

6 minutes read.

Is it fine to write void main() or main() in C/C++?

In C programming language: The default function return type in the C programming language is "int," which implies that main() will always return an integer value. In C, the void main()...

3 minutes read.

C++ Structs

We frequently encounter scenarios in which we must store a bunch of data, whether of comparable or dissimilar data kinds. Arrays are used to hold a group of data of...

6 minutes read.

Use of Inheritance in C++

What is inheritance in c++? Inheritance is fundamental in object-oriented programming (OOP) languages like C++. It allows a programmer to create a new class (called a derived class) that inherits the...

4 minutes read.

Array of Vectors in C++ STL

Prerequisites: C++ STL Arrays and C++ STL Vector. A group of items kept in consecutive memory region is known as an array. It is to group similar objects of the same...

4 minutes read.

Leap Year Program in C++

What is a Leap Year? A solar year is the length of time that it takes for Earth to orbit the Sun - approximately 365.25 days. In a calendar year, we...

4 minutes read.

Call by Pointer in C++

What is Pointer? Every variable in C++ has a specific address or location in the computer's memory, and this address is known as the memory address. A pointer can be defined...

5 minutes read.

C++ Program to find the element that occurs once

Write a program to find the element in the array that occurs once. Given that all the numbers in the array are present two times and the array is sorted,...

7 minutes read.

Bitwise Operator vs Logical Operator

Bitwise Operator  Bitwise operators perform operations bit by bit on bits.The value is converted to abinary during operations like addition, subtraction, division, and so on. These operations are carried out at the...

3 minutes read.

Binary Search in C++

The binary search in the C++ programming language will be discussed. By continually halves the array and then seeking specified items from a half array; binary search is a technique...

8 minutes read.

Virtual Functions and Runtime Polymorphism in C++

In this tutorial, we will explore more on virtual functions and runtime polymorphism in the most useful language C++. A virtual function is a member function with the keyword virtual used...

6 minutes read.

Vector in C++

Vector in C++ In today’s article, we will be learning all the things about vector in C++ and how vector is different form an array in C++. So basically, vector is very...

3 minutes read.

Object Slicing in C++

In this article, we will learn about Object slicing. When an object from a derived class is assigned to an object from a base class in C++, these extra attributes...

3 minutes read.

C++ Functions

In other programming languages, a function is referred to as a process or a subroutine. We can design functions to execute any task. A function can be used repeatedly. It...

5 minutes read.

Returning Multiple Values from a Function using Tuple and Pair in C++

We may come across many situations where after the driver code's execution is performed in a code block, the return should be either multiple values or a single value possibly...

4 minutes read.

Naming Convention in C++

The first and most fundamental step a programmer takes to produce clean code is to name a file or a variable. This naming must be acceptable so that it serves...

5 minutes read.

Array program in C++

What is an Array? An array is a set of identically typed elements that are organized into contiguous memory locations and each element can be independently accessed using an index. We can...

16 minutes read.

C++ Program For FCFS (First Come First Serve)

The most basic scheduling technique is FCFS, often known as "FIFO (First In, First Out)". In this procedure, the first one is utilized and executed first, while the second one...

4 minutes read.

Constructor Vs Destructor in C++

C++ Constructor A function Object () { [native code] } is a member function that shares the same name as the class. It is called automatically whenever a class object is...

3 minutes read.

Smart pointers in C++

What are Pointers ? Pointers are often used to keep track of a variable's address. A null value can be assigned to a pointer. Pass by reference can be used to...

6 minutes read.