C program to swap first and last digit of a number

C program to swap first and last digit of a number

Write a C program to input a number from user and swap first and last digit of the given number. How to swap first and last digits of a number in C programming. Logic to swap first and last digit of a number in C program.

Example

Input

Input any number: 12345

Output

Number after swapping first and last digit: 52341

Required knowledge

Basic C programming, Basic Mathematics

Logic to swap first and last digit of a number

Logic to swap first and last digit of a number

Begin:

read(num)

lastDigit ← num % 10;

digits ← log10(num);

firstDigit ← num / pow(10, digits);

swappedNum ← lastDigit * pow(10, digits);

swappedNum ← swappedNum + num % pow(10, digits);

swappedNum ← swappedNum - lastDigit;

swappedNum ← swappedNum + firstDigit;

End

Let us do a dry run of the algorithm to get grip on the logic.

Suppose num = 12345

--------------------

lastDigit = 12345 % 10 => 5

digits = log10(12345) => 4

firstDigit = 12345 / pow (10, 4) => 12345 / 10000 => 1

swappedNum = 5 * pow(10, 4) => 5 * 10000 => 50000

swappedNum = 50000 + (12345 % 10000) => 50000 + 2345 => 52345

swappedNum = 52345 - 5 => 52340

swappedNum = 52340 + 1 => 52341

Program to swap first and last digit of a number




 
/**
 * C program to swap first and last digit of a number
 */

#include <stdio.h>
#include <math.h>

int main()
{
    int num, swappedNum;
    int firstDigit, lastDigit, digits;

    /* Input number from user */
    printf("Enter any number: ");
    scanf("%d", &num);

    /* Find last digit */
    lastDigit  = num % 10;

    /* Find total number of digit - 1 */
    digits     = (int)log10(num); 

    /* Find first digit */
    firstDigit = (int)(num / pow(10, digits)); 

    swappedNum  = lastDigit;
    swappedNum *= (int) pow(10, digits);
    swappedNum += num % ((int) pow(10, digits));
    swappedNum -= lastDigit;
    swappedNum += firstDigit;

    printf("Original number = %d", num);
    printf("Number after swapping first and last digit: %d", swappedNum);

    return 0;
}



Note: In some compiler the above program may not produce valid results for some inputs. You may use the below program with similar logic with a little change in the code.

Program to swap first and last digit of a number




 
/**
 * C program to swap first and last digit of a number
 */

#include <stdio.h>
#include <math.h>

int main()
{
    int num, swappedNum;
    int firstDigit, lastDigit, digits;

    /* Input a number from user */
    printf("Enter any number: ");
    scanf("%d", &num);

    /* Find last digit */
    lastDigit  = num % 10; 

    /* Total number of digit - 1 */
    digits     = (int) log10(num); 

    /* Find first digit */
    firstDigit = (int) (num / pow(10, digits));

    swappedNum  = lastDigit;
    swappedNum *= (int) round(pow(10, digits));
    swappedNum += num % ((int)round(pow(10, digits)));
    swappedNum -= lastDigit;
    swappedNum += firstDigit;

    printf("Original number = %d", num);
    printf("Number after swapping first and last digit: %d", swappedNum);

    return 0;
}



Note: In the above program I have used three mathematical function pow(), log10() and round().

pow() is used to find power of a number.

log10() is used to find log base 10 value of the passed parameter.

round() function is used to round a number to nearest integer.

Output

Enter any number: 1234

Original number = 1234

Number after swapping first and last digit: 4231




Instagram