# 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.
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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 ` `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
```

## tags:

Mathematical Mathematical