Problem:
Score : 200 points

Problem Statement

Given is an integer N. Find the number of positive integers less than or equal to N that have an odd number of digits (in base ten without leading zeros).

Constraints

1 \leq N \leq 10^5

Input

Input is given from Standard Input in the following format:

N

Output

Print the number of positive integers less than or equal to N that have an odd number of digits.

Sample Input 1

11

Sample Output 1

9

Among the positive integers less than or equal to 11, nine integers have an odd number of digits: 1, 2, \ldots, 9.

Sample Input 2

136

Sample Output 2

46

In addition to 1, 2, \ldots, 9, another 37 integers also have an odd number of digits: 100, 101, \ldots, 136.

Sample Input 3

100000

Sample Output 3

90909

Solution in C++14 (Clang 3.8.0) (judge verdict: Accepted)

#include <iostream>
#include <algorithm>

using namespace std;

int main(void)
{
    int n;

    cin >> n;

    int m = n,i;
    for (i = 0; i < 10; i++)
    {
        m /= 10;
        if (m == 0)
        {
            break;
        }
    }
    int ans = 0;
    switch (i)
    {
        case 0:
            ans = n;
            break;
        case 1:
            ans = 9;
            break;
        case 2:
            ans = 9 + n - 99;
            break;
        case 3:
            ans = 9 + 900;
            break;
        case 4:
            ans = 9 + 900 + n - 9999;
            break;
        case 5:
            ans = 9 + 900 + 90000;
            break;
    }

    printf("%d", ans);

    return 0;
}