# Exponential notation of a decimal number

Given a positive decimal number, find the simple exponential notation (x = a·10^b) of the given number.

Examples:

Input : 100.0 Output : 1E2 Explanation: The exponential notation of 100.0 is 1E2. Input :19 Output :1.9E1 Explanation: The exponential notation of 16 is 1.6E1.

**Approach:**

The simplest way is to find the position of the first non zero digit and the position of the dot. The difference between that positions is the value of b (if the value is positive you should also decrease it by one).

Below is the implementation of the above approach:

`// C++ code to find the exponential notation` `#include <bits/stdc++.h>` `using` `namespace` `std;` ` ` `// function to calculate the exponential` `// notation` `void` `FindExponent(` `char` `s[], ` `int` `n)` `{` ` ` `int` `i, j, b, c;` ` ` `for` `(i = 0; s[i] == ` `'0'` `|| s[i] == ` `'.'` `; i++)` ` ` `;` ` ` `for` `(j = n - 1; s[j] == ` `'0'` `|| s[j] == ` `'.'` `; j--)` ` ` `;` ` ` ` ` `c = find(s, s + n, ` `'.'` `) - s;` ` ` `putchar` `(s[i]);` ` ` ` ` `if` `(i != j)` ` ` `putchar` `(` `'.'` `);` ` ` ` ` `for` `(` `int` `k = i + 1; k <= j; k++)` ` ` `if` `(s[k] != ` `'.'` `)` ` ` `putchar` `(s[k]);` ` ` `if` `(i < c)` ` ` `b = c - i - 1;` ` ` `else` ` ` `b = c - i;` ` ` `if` `(b)` ` ` `printf` `(` `"E%d"` `, b);` `}` ` ` `// main function` `int` `main()` `{` ` ` `char` `s[] = ` `"100"` `;` ` ` `int` `n = ` `strlen` `(s);` ` ` `FindExponent(s, n);` `}` |

Output:

1E2

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**