C program to find first and last digit of any number

Write a C program to input a number from user and find first and last digit of number using loop. How to find first and last digit of a number in C programming. Logic to find first and last digit of a given number without using loop in C program.

Example

Input

Input number: 1234

Output

First digit: 1
Last digit: 4

Required knowledge

Basic C programming, Arithmetic operators, While loop

Logic to find last digit of a number

Before I explain logic to find first digit, let us first learn to find last digit of a number.

To find last digit of a number in programming we use modulo operator %. A number when modulo divided by 10 returns its last digit.

Suppose if n = 1234
then lastDigit = n % 10 => 4

Let us implement the above logic to find last digit.

Program to find last digit of a number

/**
 * C program to find last digit of a number
 */

#include <stdio.h>

int main()
{
    int n, lastDigit;

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

    /* Get the last digit */
    lastDigit = n % 10;

    printf("Last digit = %d", lastDigit);

    return 0;
}

Logic to find first digit of a number

Finding first digit of any number is little expensive than last digit. To find first digit of a number we divide the given number by 10 until number is greater than 10. At the end we are left with the first digit.

Step by step description to find first digit of a number.

  1. Input a number from user. Store it in some variable say num.
  2. Copy the value of num to some temporary variable say first = num.
  3. Divide first by 10, till first >= 10.
  4. Finally you are left with first digit in first variable.

Program to find first digit of a number

/**
 * C program to find first digit of a number 
 */

#include <stdio.h>

int main()
{
    int n, first;

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

    first = n;

    /* Remove last digit from number till only one digit is left */
    while(first >= 10)
    {
        first = first / 10;
    }

    printf("First digit = %d", first);

    return 0;
}

The above approaches to find first and last digit is easy to implement and learn. However, I use a different approach to find first or last digit.

Logic to find first and last digit of a number

Step by step descriptive logic to find first and last digit of a number without loop.

  1. Input a number from user. Store it in some variable say num.
  2. Find last digit using modulo division by 10 i.e. lastDigit = num % 10.
  3. To find first digit we have simple formula firstDigit = n / pow(10, digits - 1). Where digits is total number of digits in given number.

Program to find first and last digit

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

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

int main()
{
    int n, firstDigit, lastDigit, digits;

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

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

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

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

    printf("First digit = %d\n", firstDigit);
    printf("Last digit = %d\n", lastDigit);

    return 0;
}

Important note: log10() is a mathematical function present in math.h header file. It returns log base 10 value of the passed parameter to log10() function.

Output

Enter any number: 1234
First digit = 1
Last digit = 4

Happy coding 😉

Write your doubts or suggestion. I will try my best to help. You must escape source code before commenting. To format your source code paste your source code inside
<pre><code> ----Your Source Code---- </code></pre>