Given a number **N**, the task is to write a C program to print all digits of the number **N** in their original order.

**Examples:**

Input:N = 12

Output:1, 2

Input:N = 1032

Output:1, 0, 3, 2

**Method 1:** The simplest way to do is to extract the digits one by one and print it.

- Extract the last digit of the number
**N**by**N%10**, and store that digit in an array(say**arr[]**). - Update the value of
**N**by**N/10**and repeat the above step till**N**is not equals to**0**. - When all the digits have been extracted and stored, traverse the array from the end and print the digits stored in it.

Below is the implementation of the above approach:

`// C program of the above approach ` ` ` `#include <stdio.h> ` `#define MAX 100 ` ` ` `// Function to print the digit of ` `// number N ` `void` `printDigit(` `int` `N) ` `{ ` ` ` `// To store the digit ` ` ` `// of the number N ` ` ` `int` `arr[MAX]; ` ` ` `int` `i = 0; ` ` ` `int` `j, r; ` ` ` ` ` `// Till N becomes 0 ` ` ` `while` `(N != 0) { ` ` ` ` ` `// Extract the last digit of N ` ` ` `r = N % 10; ` ` ` ` ` `// Put the digit in arr[] ` ` ` `arr[i] = r; ` ` ` `i++; ` ` ` ` ` `// Update N to N/10 to extract ` ` ` `// next last digit ` ` ` `N = N / 10; ` ` ` `} ` ` ` ` ` `// Print the digit of N by traversing ` ` ` `// arr[] reverse ` ` ` `for` `(j = i - 1; j > -1; j--) { ` ` ` `printf` `(` `"%d "` `, arr[j]); ` ` ` `} ` `} ` ` ` `// Driver Code ` `int` `main() ` `{ ` ` ` `int` `N = 3452897; ` ` ` ` ` `printDigit(N); ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

**Output:**

3 4 5 2 8 9 7

**Time Complexity:** O(log_{10} N)

**Auxiliary Space:** O(log_{10} N)

**Method 2: Using Recursion**

- Recursively iterate till N become 0:
**Base Case:**If the value of**N**is**0**, exit from the function.if(N==0) return ;

**Recursive Call:**If the base case is not met, recursively call for next iteration by updating**N**to**N/10**and print the value of last digit extracted(say**r**) from the number**N**, after recursive call.recursive_function(N/10); print(r);

Below is the implementation of the above approach:

`// C program of the above approach ` ` ` `#include <stdio.h> ` ` ` `// Function to print the digit of ` `// number N ` `void` `printDigit(` `int` `N) ` `{ ` ` ` `int` `r; ` ` ` ` ` `// Base Case ` ` ` `if` `(N == 0) { ` ` ` `return` `; ` ` ` `} ` ` ` ` ` `// Extract the last digit ` ` ` `r = N % 10; ` ` ` ` ` `// Recursive call to next ` ` ` `// iteration ` ` ` `printDigit(N / 10); ` ` ` ` ` `// Print r ` ` ` `printf` `(` `"%d "` `, r); ` `} ` ` ` `// Driver Code ` `int` `main() ` `{ ` ` ` `int` `N = 3452897; ` ` ` ` ` `printDigit(N); ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

**Output:**

3 4 5 2 8 9 7

**Time Complexity:** O(log_{10} N)

**Auxiliary Space:** O(1)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.