Write a program to remove alternate digits of an integer in c/c++.
Intput 1234567 Output 1357
The simplest way to remove alternate digits of an integer is to convert the integer to a string using itoa() and then read the alternate digits using a loop and combine the digits together.
Steps
- Let n be the input integer.
- Covert n to a string using itoa(). Let the string be str.
- Set temp = 0 and i = 0.
- Repeat the following step while i < str.Length
- temp = temp * 10 + str[i]
- i = i + 2
- The final answer is stored in temp.
Program to remove alternate digits
#include<stdio.h> #include<stdlib.h> #include<string.h> int removeAlternateDigits(int n) { char str[32]; int temp, i; // convert integer n into a character string // the string is placed in str // 10 indicates n base 10 itoa(n, str, 10); temp = 0; // reading only alternate digits of the string for (i = 0; i < strlen(str); i = i + 2) { // append str[i] to right side of temp // str[i]-'0' converts str[i] to corresponding integer temp = temp * 10 + (str[i] - '0'); } return temp; } int main() { int n; printf("Enter a Number: "); scanf("%d", &n); n = removeAlternateDigits(n); printf("Number after removing alternate digits: %d", n); }
Output
Enter a Number: 123456789 Number after removing alternate digits: 13579
Program Remove alternate digits without using string
In this section, we will discuss how we can remove alternate digits from an integer without converting integer to string.
Steps
- Let n be the input integer.
- Reverse n.
- Set temp = 0.
- Repeat the following steps while n > 0
- temp = temp*10 + n%10
- n = n / 100
- The final answer is stored in temp.
#include<stdio.h> #include<stdlib.h> #include<string.h> // function to reverse n int reverse(int n) { int temp = 0; while (n > 0) { temp = temp * 10 + n % 10; n = n / 10; } return temp; } int removeAlternateDigits(int n) { int temp = 0; n = reverse(n); while (n > 0) { temp = temp * 10 + n % 10; // append n%10 to right side of temp n = n / 100; // removing 2 digits from right side of n } return temp; } int main() { int n; printf("Enter a Number: "); scanf("%d", &n); n = removeAlternateDigits(n); printf("Number after removing alternate digits: %d", n); }
Output
Enter a Number: 987654321 Number after removing alternate digits: 97531
Read
Count prime numbers in the given range
Pascal’s Triangle (recursive)
Diamond Pattern Program (recursive)
Square root using Binary Search
How to do this in Java?
I will upload the Java version by tomorrow. The logic is the same tho.