Skip to main content

Featured

Merge Sort in C++

  Merge Sort in C++ Introduction Merge Sort is a popular sorting algorithm that follows the Divide and Conquer approach. It divides an array into smaller subarrays, recursively sorts those subarrays, and finally merges the sorted subarrays to produce a completely sorted array. In this tutorial, we will learn how to implement Merge Sort in C++ . The program divides the array into two halves using the mid index, recursively sorts both halves, and then combines them using the merge() function. Merge Sort has a time complexity of O(n log n) in the best, average, and worst cases. Table of Contents Algorithm C++ Program Input Sample Output Output Explanation Dry Run Flow of Execution Time Complexity Space Complexity Applications Key Points Interview Questions Frequently Asked Questions Keywords Conclusion Algorithm Start the program. Read the size of the array. Read the array elements from the user. Call the mer...

Check if Binary Representation is Palindrome or not in C

C Program: Check if Binary Representation is Palindrome

๐Ÿ”ท C Program: Check if Binary Representation is Palindrome

#include <stdio.h>
#include <string.h>

void inttobinary(int num, char binary[])
{
    int index = 0;
    while (num > 0)
    {
        binary[index++] = (num % 2) + '0';
        num /= 2;
    }
    binary[index] = '\0';

    // Reverse the binary string
    for (int i = 0; i < index / 2; i++)
    {
        char temp = binary[i];
        binary[i] = binary[index - 1 - i];
        binary[index - 1 - i] = temp;
    }
}

int pal(char str[])
{
    int start = 0;
    int end = strlen(str) - 1;

    while (start < end)
    {
        if (str[start] != str[end])
        {
            return 0;
        }
        start++;
        end--;
    }
    return 1;
}

int main()
{
    int num;
    char binary[50];

    printf("Enter the number: ");
    scanf("%d", &num);

    if (num == 0)
    {
        printf("The binary representation of 0 is palindrome.\n");
        return 0;
    }

    inttobinary(num, binary);

    if (pal(binary))
    {
        printf("The binary representation of %d is a palindrome.\n", num);
    }
    else
    {
        printf("The binary representation of %d is not a palindrome.\n", num);
    }

    return 0;
}
  

๐Ÿ“˜ Explanation:

This program checks whether the **binary representation** of a given decimal number is a **palindrome**.

๐Ÿ”น The function inttobinary() converts a given integer to its binary equivalent using division by 2. Digits are stored in reverse order and later reversed to get the correct binary format.

๐Ÿ”น The function pal() checks if a given string is a palindrome by comparing characters from both ends until the middle.

๐Ÿ”น In main(), the number is taken from the user. If it is 0, it's directly reported as a binary palindrome.
๐Ÿ”น Otherwise, it converts the number to binary and checks if the result is a palindrome, printing the appropriate message.

๐Ÿ” Sample Output:

Enter the number: 9
The binary representation of 9 is a palindrome.

Enter the number: 10
The binary representation of 10 is not a palindrome.
    

๐Ÿท️ Keywords:

binary palindrome, binary conversion in C, C palindrome check, number to binary in C, C programs for beginners, string reversal, strcmp, strlen, strcpy

Comments

Popular Posts

๐ŸŒ™