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.
- Input a number from user. Store it in some variable say num.
- Copy the value of num to some temporary variable say
first = num
. - Divide first by 10, till
first >= 10
. - 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.
- Input a number from user. Store it in some variable say num.
- Find last digit using modulo division by 10 i.e.
lastDigit = num % 10
. - 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 😉
Recommended posts
- Loop programming exercises index.
- C program to find sum of first and last digit of any number.
- C program to swap first and last digit of any number.
- C program to calculate sum of digits of a given number.
- C program to find product of digits of a given number.
- C program to find reverse of any number.
- C program to check whether a number is palindrome or not.