<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
El 06/11/10 17:30, Toni escribió:
<blockquote
cite="mid:AANLkTi=TvmFT3nP6vOnHVqG3cFTiF2ybBv1YDkvtXyy3@mail.gmail.com"
type="cite">Hola,
<div><br>
</div>
<div>He hecho el siguiente codigo:</div>
<div><br>
</div>
<div>
<div>#include<iostream></div>
<div>using namespace std;</div>
<div><br>
</div>
<div>int iesimo(int N, int i){</div>
<div> int comparador,resultado;</div>
<div> comparador=1;</div>
<div> resultado=1;</div>
<div><br>
</div>
<div> for (int j=0;j<i;j++){</div>
<div><span class="Apple-tab-span" style="white-space: pre;"> </span>comparador*=10;</div>
<div> }</div>
<div> if (comparador/10<N){</div>
<div><span class="Apple-tab-span" style="white-space: pre;"> </span>resultado=N%comparador;</div>
<div><span class="Apple-tab-span" style="white-space: pre;"> </span>comparador/=10;</div>
<div><span class="Apple-tab-span" style="white-space: pre;"> </span>
if (comparador!=0){</div>
<div><span class="Apple-tab-span" style="white-space: pre;"> </span>
resultado/=comparador;</div>
<div><span class="Apple-tab-span" style="white-space: pre;"> </span>
}</div>
<div><br>
</div>
<div> }else{</div>
<div><span class="Apple-tab-span" style="white-space: pre;"> </span>resultado=-1;</div>
<div> }</div>
<div> return resultado;</div>
<div>}</div>
<div><br>
</div>
<div>int main(){</div>
<div>int num,digitos;</div>
<div><br>
</div>
<div>cout<<"Introduzca un numero: \n";</div>
<div>cin>>num;</div>
<div><br>
</div>
<div>digitos=0;</div>
<div><br>
</div>
<div> while (iesimo(num,digitos)!=-1){</div>
<div><span class="Apple-tab-span" style="white-space: pre;"> </span>digitos++;</div>
<div> }</div>
<div>digitos--;</div>
<div><br>
</div>
<div>cout<<"Tiene "<<digitos<<" digitos\n";</div>
<div><br>
</div>
<div>return 0;</div>
<div>}</div>
<div><br>
</div>
<div><br>
</div>
<div>Lo que quiero que haga ese programa es en primer lugar, al
insertar un numero cualquiera me diga cuantos digitos componen
ese numero, por ejemplo 35435 son 5 digitos.</div>
<div>El problema que tengo es que cuando introduzco un numero de
9 o más digitos, el resultado que me devuelve es erroneo.</div>
<div><br>
</div>
<div>Una vez sepa los digitos que tiene, tengo que sumar las
posiciones simetricas, (el primero con el ultimo, el segundo
con penultimo) aunque para esto ya haré su implementación,
pero primero necesitaria el resultado correcto de los digitos
que forman ese numero.</div>
<div><br>
</div>
<div>Agradecería cualquier comentario o ayuda.</div>
<div><br>
</div>
<div>Saludos,<br>
</div>
</div>
</blockquote>
Tu problema está en la precisión de las variables. Estás usando
variables tipo int, lo que serán valores de 32 bits en la mayoría de
las plataformas, por lo tanto, valores de -2147483648 a 2147483647.<br>
Puedes aumentar la precisión cambiando el tipo a long long int, pero
lo que es el problema, está resuelto. <br>
<br>
<br>
</body>
</html>