Your question, your audience. Choose who sees your identityâ€”and your questionâ€”with question security.

What is the best algorithm to check a number is in which particular range of:

0 to 9

10 to 99

100 to 999

1000 to 9999

10000 to 99999

...rate at exponential of 10

E.g X = 555 is in the range of 100 - 999

I use a if-else-then to do the checking but its looks terribly ugly.

Any advice?

0 to 9

10 to 99

100 to 999

1000 to 9999

10000 to 99999

...rate at exponential of 10

E.g X = 555 is in the range of 100 - 999

I use a if-else-then to do the checking but its looks terribly ugly.

Any advice?

1 Solution

I have simple and beautiful algorithm and solution for your problem.

ALGORITHM

1. Read the number into "n";

2. Store this number n as a string into test

i.e., test = string(n);

3. Get the length of the string into length

length = string_length(n);

4. Now

Range_From = power(10,length-1)

Range_To = power(10,length)-1

5. End of the algorithm

/* Here the solution in C++ */

#include <iostream.h>

#include <string.h>

#include <math.h>

void main(void)

{

int n,len,ifrom,ito;

char *test;

cout << "Enter a number ";

cin >>n;

test = itoa(n); /* Converts integer to Ascii */

len = strlen(test);

ifrom = pow(10,len-1);

ito = pow(10,len)-1;

cout << "The number "<<n<<" is in the range from "<<ifrom<<" to "<<ito<<endl;

}

This algorithm is tested and it works fine. If you are interested with my answer

Please reject the above answer and accept my answer.

Thank you.

JESUS LOVES YOU - sganta

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Tackle projects and never again get stuck behind a technical roadblock.

Join Now
#include <math.h>

.

if (X >= 0)

{

unsigned int n = X == 0 ? 0 : log10((double)X);

// 0 to 9, n = 0

// 10 to 99, n = 1

// 100 to 999, n = 2

// 1000 to 9999, n = 3

// ...

}

else

{

...

}