×

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

Dynamic Memory Allocation in C++

In some programming situations, the number of data items changes as the program is running, which is known as dynamic data or input. Consider a real-world situation where a program...

3 minutes read.

Multilevel Inheritance

C++ Multilevel Inheritance Multilevel inheritance is such an inheritance in which a derived class is created from another derived class. C++ Multilevel Inheritance Example In this example, a base class Student is inherited in...

2 minutes read.

C++ Pointer

Pointer is a derived data type that stores the address of a variable. A pointer is used for memory management and dynamic memory allocation. Pointer works on the address of data rather than...

2 minutes read.

Malloc() and new in C++

In C ++, malloc () and new are used for the same thing. During runtime, they are used to allocate memory. Malloc () and the new, on the other hand,...

4 minutes read.

Assertions in C/C++

Assertions are the statements used to check presumptions which is made by the programmers. Example: Assertion is used to verify whether the malloc returned by the pointer is NULL or not. For...

4 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.

C++ Do while loop

In this article, we will discuss the C++ Do-While loop with its syntax, working, key features, algorithm, and examples. Do-While Loop: The do-while loop constitutes a specific style of looping construct in...

5 minutes read.

Passing by Reference Vs. Passing by the pointer in C++

 Passing by Reference Vs. Passing by the pointer in C++ Throughout C++, it can transfer parameter values except by pointers or through referring to a function. For both cases, we have...

3 minutes read.

How to run program in turbo c++

What is Turbo C++? Turbo c++ is an integrated development environment (IDE) and a compiler to run C++ code. Turbo c++ helps to link the header files with the main code....

2 minutes read.

C++ Bidirectional Iterators

Iterators : Iterators serve as a link between algorithms and STL containers, allowing the data inside the container to be modified. They let you to iterate through the container, access and...

3 minutes read.

ATM machine program in C++ using functions

Automated Teller Machines (ATMs) carry out daily financial transactions. They are straightforward and simple, allowing customers to complete self-service transactions quickly. ATMs can then be used to withdraw cash, deposit...

3 minutes read.

Reverse function in C++

The function std::reverse() is included in the standard template library of C++. It takes in a beginning and ending iterator, reversing the order. To use the reverse statement, we need...

2 minutes read.

Static keyword in C++ vs Java

Both in C++ and Java, the static keyword is employed for essentially the same function. But there are some variations. The static keyword's similarities and differences between C++ and Java...

3 minutes read.

strcat() vs strncat() in C++

In this tutorial, we will explore about strcat() and strncat() in the most usable language C++. We will also look at the difference between them. strcat() C++ is a computer language with...

4 minutes read.

Two dimension array

C++ Two dimension (2D) Array Two dimension (2D) array is an array of arrays. It is represented in the form of row and column. The elements of 2D array are accessed through the...

2 minutes read.

gmtime() function in C/C++

C++ language is used to make high-performance applications that can work efficiently. It is one of the world's most popular languages. It is an object-oriented and high-level programming language, which...

4 minutes read.

C++ Installation

Let's install C++ setup to start programming in C++. C++ setup contains C++ compiler which is required in your system. There are lots of C++ compilers available, you must choose...

1 minute read.

Single dimension array

C++ Array An array is a collection of data (elements) of the same data types. The elements of an array are allocated in contiguous memory allocation. Elements of the array are accessed through...

1 minute read.

Inheritance and Friendship in C++

In this tutorial, we will look into what Inheritance and Friendship in C++ are, as well as the differences between the two. What is Inheritance in C++: In C++, inheritance is an...

2 minutes read.

Object in C++

In this article, we will learn about Object in C++. In short, an object is a stateful entity with behaviour. Data is referred to as state, and functionality is referred to...

3 minutes read.