×

Palindrome using Do-while loop in C++

What is Palindrome?

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:

1. Start

2. Take input from the user.

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

4. Find the inverse of inserted value.

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

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

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

8. Stop.

What is Do-While Loop?

An iterative loop that checks the condition at the end.
The Do-While loop can be used whenever a test condition is specific, as the control enters the loop at a minimum once before the condition is evaluated. This loop checks the given condition after the execution of looping statements.

The loop actions or statements will be repeated infinitely as long as the test requirements are met.

Note: DO-WHILE LOOP means “first do it, then check”.

Syntax:

The Syntax of the DO-WHILE loop is:

Do
           { 
            statement(s);
           } 
         while(expression);

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 of finding the Palindrome:

Palindrome using Do-while loop in C++

Program 1: Program to print whether the number is Palindrome or not.

#include<iostream>
using namespace std;
int main()
{
int r, rev= 0, i, temp;
int num=4554;
temp = num;           //store number to temp
i=num;  
 do{
           r= i % 10;
          rev = rev * 10 +r;
          i = i/ 10;
       }while(i>0);
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 4554 to integer variable num. The integer's value is saved in another temporary variable, “temp”.

Then, Do-while loop is utilized, and the modulus operator is used to get the number's last digit. Here, 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 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 user
temp = num;  
i=num;                   //store number to temp
            do {
           r= i % 10;
             rev = rev * 10 +r;
           i = i/ 10;
        }while(i>0);
   if(temp == rev)                                   
          {
           cout << "The given number is a palindrome"; 
          }
     else
       {
          cout << "The given number is not a palindrome"; 
       }
  return 0;
}

The output of the program

Enter a random number: 121
    The given number is a palindrome.
Enter a random number: 1234
     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 saved in another temporary variable.

Then, Do-while loop is utilized, and the modulus operator is used to get the number's last digit. Here, 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

#include <iostream>
using namespace std;
 void palindrome(int arr[], int n)
{
    int flag = 0;
    Int i=0;
       do
          {
         if (arr[i] != arr[n - i - 1])
             {
                   flag = 1;
                   break;
            }
           i++;
         }     
      While(i<=n/2&&n!=0)


         // 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

Classes and Objects in C++

When it comes to object-oriented programming, objects are the basic building blocks. Memory is taken up by objects, which contain data and methods or functions that operate on it. On...

3 minutes read.

Random Number Generator in C++

In programming, we need to frequently create the randomly. For example, a dice game, handing out cards to players, apps for rearranging tunes, etc. T There are two tools available in...

4 minutes read.

Storage Classes in C

Storage Classes in C Storage Classes are used to define the variable and function property. These functionalities include basically the scope, accessibility, and lifetime that help us detect the existence of...

4 minutes read.

Ways to Copy a Vector in C++

Vectors in C++ are the same as arrays, along with additional outstanding features than them, like array lists in Java programming language. In Vectors, the size constraint is eliminated, which...

5 minutes read.

C++ Signal Handling

Signals are interruptions sent by the operating system to a process to cause it to cease doing its current job and focus on the task for which the interrupt was...

4 minutes read.

C++ Program to find the largest number formed from an array

Given an array, write a program to find the largest number that will be formed from the elements of the array. Arrangement should be done in such a way that...

4 minutes read.

Diamond Pattern in C++ using For Loop

For Loop: A for loop is a repetitive control structure that allows you to create a loop for executing a specific number of times. The syntax of for loop: In C++, a for...

5 minutes read.

C++ References

C++ References An alias is a reference variable that is another name for a variable already in existence. If a relation is initialized with a variable, it is possible to use...

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

Converting string into integer in C++

When programming in C++, we'll frequently need to change one data type to another. When we use C++ to create apps, we must transform data from one type to another. When...

7 minutes read.

Difference between exit() and _Exit() in C++

Before understanding the difference between the exit() and _Exit(), one must know about exit() and _Exit() functions. The exit() function in C/C++ The exit() method in the C language kills the calling...

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

Multiset in C++

Introduction Multisets are part of the C++ STL, or Standard Template Library. In C++, a multiset is a set of associative containers that hold ordered items. Items in a multiset can...

10 minutes read.

C++ Variable

In this article, we will discuss variables in C++ with their types and examples. What are Variables? Variables are specific memory storage spaces that hold a value. During the execution of a...

4 minutes read.

Factory Method for Designing Pattern in C++

In C++, the factory method is a type of conditional design pattern. The factory method is related to creating a new object in C++. With the help of a factory...

3 minutes read.

Free vs delete() in C++

Free vs delete() in C++ In this section, we will learn about the free() function and also create a C ++ program of the delete operator. What is free() Function in C++? In...

4 minutes read.

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

Strings In C++, a string is an object that represents a group (or sequence) of various characters. Strings are part of the standard string class in C++ (std::string). The characters of...

4 minutes read.

C++ Deque

Definition: Deque or the Doubly ended queue is a data structure or operation performed under queue where insertion and deletion are allowed at both ends. A deque is an ordered collection of...

5 minutes read.

C++ Multimap

Definition: In C++, a multimap is similar to a map with the additional concept, where multiple elements possess the same keys. It is also not necessary that the key values and...

4 minutes read.

Different Ways to Compare Strings in C++

This section will go over the many methods for comparing strings in the C++ programming language. The string comparison checks if the first string is equal to another string. HELLO...

6 minutes read.