Muchas gracias a todos, <div><br></div><div>Finalmente he resuelto el problema con todas vuestras sugerencias, una de ellas era efectivamente como apuntaba programante era el tipo, por ello lo cambie a long long int y luego reduciendo un poco el algoritmo un poco para aplicar algo más de matematicas simples. Intente usar el logaritmo pero no se si forma parte de alguna libreria o habia que implementarlo yo, de todas formas lo solucione con el siguiente codigo: </div>
<div><br></div><div>int iesimo(long long int numero){</div><div><div><br></div><div>int contador=0;</div><div>  while(numero!=0){</div><div>    contador++;</div><div>    numero/=10;</div><div>  }</div><div>return contador;</div>
<div>}</div><div><br></div><div>De nuevo gracias a todos,</div><div><br></div><div>Saludos,</div><div><br></div><div><br></div><br><div class="gmail_quote">El 7 de noviembre de 2010 02:33, Steven Davidson <span dir="ltr"><<a href="mailto:srd4121@njit.edu">srd4121@njit.edu</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hola Toni,<br>
<br>
On 11/6/10, Toni <<a href="mailto:tsptoni@gmail.com">tsptoni@gmail.com</a>> wrote:<br>
> Hola,<br>
><br>
<br>
[CORTE]<br>
<div class="im"><br>
> Lo que quiero que haga ese programa es en primer lugar, al insertar un<br>
> numero cualquiera me diga cuantos digitos componen ese numero, por ejemplo<br>
> 35435 son 5 digitos.<br>
> El problema que tengo es que cuando introduzco un numero de 9 o más digitos,<br>
> el resultado que me devuelve es erroneo.<br>
><br>
> Una vez sepa los digitos que tiene, tengo que sumar las posiciones<br>
> simetricas, (el primero con el ultimo, el segundo con penultimo) aunque para<br>
> esto ya haré su implementación, pero primero necesitaria el resultado<br>
> correcto de los digitos que forman ese numero.<br>
><br>
<br>
</div>La solución más sencilla es usando las matemáticas. Un número tiene<br>
tantos dígitos como el mayor exponente de la base de la representación<br>
de susodicho número más 1. Si es base 10, entonces el número tiene<br>
tantos dígitos como uno más el mayor exponente de 10; por ejemplo,<br>
<br>
35435 = 30000 + 5000 + 400 + 30 + 5 = 3x10^4 + 5x10^3 + 4x10^2 + 3x10^1 + 5x10^0<br>
<br>
El mayor exponente es 4, por lo que la cantidad de dígitos es: 1+4 = 5.<br>
<br>
Como estamos manipulando exponentes de la base numérica, entonces<br>
estamos hablando de logaritmos. La solución a tu problema es<br>
simplemente:<br>
<br>
int iesimo( long long int num )  // dígitos = 1 + log(num)<br>
{<br>
  return 1+int(log10(num));<br>
}<br>
<br>
<br>
Espero que esto te sirva.<br>
<font color="#888888"><br>
Steven<br>
</font><div><div></div><div class="h5"><br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><img src="http://antoniosanchez.webcindario.com/images/Firma.jpg"><br><br>
</div>