×

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

Substring in C++

A substring is a function in c++ that is imported from the string library. An element of a string is called a substring. A substring contains two parameters length and...

2 minutes read.

Decimal to Octal in C++

We must create a software that converts a decimal number into an equal octal number given a decimal number as input i.e. convert a number having a base value of...

3 minutes read.

Inheritance Program in C++

What is Inheritance? Inheritance is the ability of a class to inherit traits and properties from another class. One of the most crucial aspects of Object-Oriented Programming is inheritance. The ability or...

9 minutes 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.

Auto keyword in C++

The primary function of auto keyword is to assign and detect the value of the data type automatically in C++. The compiler knows the data type of the variable by...

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.

Default arguments in C++

Arguments in a function are defined as the values supplied when the function is called. The source is the values supplied, and the destination is the receiving function. Let us...

3 minutes read.

Data Hiding in C++

C++ : High-performance apps can be made using the cross-platform language C++. Bjarne Stroustrup created C++ as an addition to the C language. Programmers have extensive control over memory and system...

3 minutes read.

wcscpy(), wcslen(), wcscmp() Functions in C++

There are many built-in functions in C++ programming language which differentiate it from C programming language in most hardware-coded languages. We will now closely look into the applications of three...

4 minutes read.

Include Guards in C++

In C++ programming, we frequently utilize a class more than once, so it is necessary to create a header file and include it in the main program. Now, occasionally a...

3 minutes read.

Unary Operators in C++

Unary operators in C++ Unary operator: is operations that function to produce a new value on a single operand. a) unary minus: A minus operator modifies the argument's symbol. A positive number...

3 minutes read.

C++ int into String

Data type conversion is a standard editing process. You may need to convert variable from one type of data to another in a variety of situations. There are two ways...

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

C++ Algorithms

There are plenty of programming paradigms that are closely associated with the implementations of code and simulate them into a proper functional one. This is done with the help of...

5 minutes read.

C++ Queue

C++ queue: Queue in C++ is also a container adapter with the functionality of a queue. Queue is just the opposite of the stack in C++ because stack works on...

4 minutes read.

Functors in C++

Functors are not a very popular thing among beginner or intermediate-level programmers. But this thing is very useful and helpful. The name functor suggests us some similarities with function. It...

3 minutes read.

How to create a library in C++

Before going on to the creation of a library, let’s understand its meaning. What is a library? In simple words, a library is a collection of numerous functions, methods, classes, header files...

7 minutes read.

Palindrome Using While 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...

6 minutes read.

Structured Binding in C++

Structured binding is the new feature of C++ 17. It is used to bind the specified name with an element of the initializer. Structure binding is used to declare multiple...

3 minutes read.

Bit Manipulation in C++

The high-level language in which we communicate is not understood by the computer. As a result, there existed a standard mechanism for understanding any instruction sent to the computer. At...

5 minutes read.