Introducción a los algoritmos Algunas matemáticas necesarias… Joemmanuel Ponce Galindo
Introducción <ul><li>La computación surgió como apoyo para resolver problemas de carácter matemático que de haberse hecho ...
Introducción <ul><li>No es de extrañarnos que comúnmente tengamos que resolver problemas relacionados con matemáticas. </l...
Temas básicos <ul><li>Divisibilidad </li></ul><ul><li>Números Primos </li></ul><ul><li>Factorización </li></ul><ul><li>Máx...
DIVISIBILIDAD
Divisibilidad <ul><li>Sean  n  y  m  dos números naturales. Decimos que  n divide a m  cuando existe otro entero positivo ...
Divisibilidad <ul><li>La siguiente notación es empleada comúnmente: </li></ul><ul><li>indica que n es divisor de m </li></...
Divisibilidad <ul><li>Si  n  no divide a  m , entonces se cumple que existen  q  y  r únicos  tal que: </li></ul><ul><li>C...
Propiedades de divisibilidad <ul><li>n|n siempre se cumple </li></ul><ul><li>Si n|m y m|n entonces n=m </li></ul><ul><li>S...
NÚMEROS PRIMOS
Números primos <ul><li>Dentro de las ciencias computacionales, el estudio de los números primos es de suma importancia en ...
Números primos <ul><li>Un número primo se define como aquel número que es divisible solamente por el  1  y  por sí mismo. ...
Ejercicio 1 <ul><li>Escribe un método  esPrimo  que reciba como parámetro n,  y devuelva  true  si  n  es un número primo....
Ejercicio 1… primer acercamiento <ul><li>Sin duda el primer acercamiento es un algoritmo  O(n): </li></ul><ul><ul><li>int ...
Ejercicio 1… primer acercamiento <ul><li>Sin embargo, necesitamos algo mucho mejor que  O(n)  para resolver 2147483647 en ...
Ejercicio 1… Segundo acercamiento <ul><li>Pregunta: </li></ul><ul><li>¿Hasta dónde tenemos que revisar para asegurarnos qu...
Ejercicio 1… Segundo acercamiento <ul><li>Respuesta: </li></ul>
Ejercicio 2... <ul><li>Implementa un algoritmo de menor complejidad para resolver el problema anterior. </li></ul>
Ejercicio 2 <ul><li>  if (n<=1) </li></ul><ul><li>return true; </li></ul><ul><li>if (n==2) </li></ul><ul><li>return true; ...
Ejercicio 3 <ul><li>Escribe un método  primos  que reciba un entero  n  (n<1’000,000)   como parámetro y que escriba todos...
Ejercicio 3… primer acercamiento <ul><li>El primer acercamiento es llamar un millón de veces a nuestra función esPrimo </l...
La criba de Eratóstenes <ul><li>La manera más eficiente de encontrar todos los primos pequeños fue propuesta por Eratósten...
La criba de Eratóstenes - Ejemplo <ul><li>Supongamos  n=15 </li></ul><ul><li>Primero tenemos la lista de los 15 números: <...
La criba de Eratóstenes - Ejemplo <ul><li>Ahora tomamos el siguiente número no tachado, 3, y tachamos sus múltiplos… </li>...
La criba de Eratóstenes -Ejemplo <ul><li>Podemos observar que han quedado no tachados los  números primos  menores que 15 ...
Ejercicio 4 <ul><li>Implementa la Criba de Eratóstenes. </li></ul>
Ejercicio 4 <ul><li>Para implementar la Criba de Eratóstenes necesitaremos un arreglo de booleanos donde arreglo en la pos...
Ejercicio 4 - Criba <ul><li>void  criba( int  MAX) {  </li></ul><ul><li>int  i,j;  </li></ul><ul><li>for (i=0;i<MAX;i++) p...
FACTORIZACION
Teorema Fundamental de la Aritmética <ul><li>Cualquier número positivo puede ser expresado como producto de números primos...
¿Y el 1? <ul><li>El número 1 no es ni primo ni número compuesto. 1 no es compuesto porque no tiene dos divisores diferente...
Teorema de Euclides <ul><li>La cantidad de números primos es infinita.  </li></ul><ul><li>Para demostrar esto, consideremo...
Ejercicio 5 – Conjetura de Goldbach <ul><li>Para cualquier entero (n>3) existen dos números primos, p 1  y p 2  tales que ...
Ejercicio 6 – Tamaño de Mantas (Topcoder SRM 304 DIV2 250p) <ul><li>Las mantas se venden en varios tamaños. De hecho, pode...
Ejercicio 6 – Tamaño de Mantas (Topcoder SRM 304 DIV2 250p) <ul><li>No cuentes la misma manta dos veces, una manta de 6x9 ...
Ejercicio 7 – Primos Ingenieriles (Topcoder SRM 181 DIV2 1000p) <ul><li>Un número primo es un número que solo es divisible...
Ejercicio 7 – Primos Ingenieriles (Topcoder SRM 181 DIV2 1000p) <ul><li>..en ingeniería no son muy requeridas las solucion...
Factorización <ul><li>¿Cómo se podría encontrar la descomposición en números primos de un número  N ? : </li></ul>
Factorización <ul><li>La técnica más simple de factorización representa un método de “fuerza bruta” en donde vamos a inten...
Factorización <ul><li>void  factorizar(int n) {  </li></ul><ul><li>int  i;  </li></ul><ul><li>for (i=2;i<=(int)sqrt(n);i++...
MÁXIMO COMÚN DIVISOR
El MCD <ul><li>El Máximo Común Divisor (MCD) de dos números,  n  y  m,  es el número más grande tal que divide tanto a  n ...
El MCD <ul><li>Un algoritmo para calcular el MCD podría ser el siguiente, recorremos con un ciclo a partir del mínimo de  ...
El MCD <ul><li>Existe un método más rápido llamado el Algoritmo de Euclides, el cual itera sobre dos números hasta encontr...
El MCD <ul><li>Como ejemplo, encontremos el MCD de 205 y 10. Empezaremos a expresar el número mayor (205) en términos del ...
Ejercicio 8 <ul><li>Implementa el Algoritmo de Euclides. </li></ul><ul><li>Nota: la versión recursiva es más corta. </li><...
Ejercicio 8 – Algoritmo de Euclides – Versión Recursiva <ul><li>public  int  MCD(int  n , int  m )  </li></ul><ul><li>{  <...
MÍNIMO COMÚN MÚLTIPLO
El MCM <ul><li>El Mínimo Común Múltiplo de dos números  n  y  m  es el menor número que es múltiplo tanto de  m  como de  ...
El MCM <ul><li>El MCM puede ser encontrado usando el MCD con la siguiente propiedad: </li></ul>
Ejercicio 9 – OIEG  <ul><li>Escribe un programa que dadas  n<100  fracciones expresadas calcule la suma y la exprese como ...
CONVERSIÓN DE BASES
Conversión de Bases <ul><li>Dado que en la computación es muy común el uso del sistema binario como representación de esta...
Conversión de Bases <ul><li>Considera el número decimal12345. Lo podemos expresar de la siguiente manera: </li></ul><ul><l...
Conversión de Bases <ul><li>En el sistema binario ocurre lo mismo. Considera el número 111011, de igual manera lo podemos ...
Ejercicio 10 <ul><li>Haga un programa que convierta de un entero en base  B (  )  a un número decimal. </li></ul>
Ejercicio 10 <ul><li>int  aDecimal(int n, int b){  </li></ul><ul><li>int  resultado=0; </li></ul><ul><li>int  multiplicado...
Conversión Decimal > Otra base <ul><li>Para convertir desde un número decimal a cualquier otra base se sigue este algoritm...
Conversión Decimal > Otra base <ul><li>Para convertir a cualquier otra base solo se sustituye el  2  en el procedimiento a...
Ejercicio 11  <ul><li>Implementa el algoritmo anterior. Convierte un número decimal  N  a cualquier base  B  </li></ul>
Ejercicio 11 <ul><li>int  decimalAOtraBase(int n, int b){  </li></ul><ul><li>int  resultado=0; </li></ul><ul><li>int  mult...
Upcoming SlideShare
Loading in...5
×

Matematicas para la Olimpiada

13,564

Published on

0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
13,564
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Matematicas para la Olimpiada

  1. 1. Introducción a los algoritmos Algunas matemáticas necesarias… Joemmanuel Ponce Galindo
  2. 2. Introducción <ul><li>La computación surgió como apoyo para resolver problemas de carácter matemático que de haberse hecho a mano una persona seguramente hubiera tardado más años de los que viviría resolviendo el problema. </li></ul>
  3. 3. Introducción <ul><li>No es de extrañarnos que comúnmente tengamos que resolver problemas relacionados con matemáticas. </li></ul><ul><li>La computación es una rama de las matemáticas. </li></ul>
  4. 4. Temas básicos <ul><li>Divisibilidad </li></ul><ul><li>Números Primos </li></ul><ul><li>Factorización </li></ul><ul><li>Máximo Común Divisor </li></ul><ul><li>Mínimo Común Múltiplo </li></ul><ul><li>Conversión de Bases </li></ul>
  5. 5. DIVISIBILIDAD
  6. 6. Divisibilidad <ul><li>Sean n y m dos números naturales. Decimos que n divide a m cuando existe otro entero positivo tal que: </li></ul><ul><li>Entonces n es un divisor de m. </li></ul>
  7. 7. Divisibilidad <ul><li>La siguiente notación es empleada comúnmente: </li></ul><ul><li>indica que n es divisor de m </li></ul><ul><li>indica que n no divide a m </li></ul>
  8. 8. Divisibilidad <ul><li>Si n no divide a m , entonces se cumple que existen q y r únicos tal que: </li></ul><ul><li>Con </li></ul><ul><li>A q le llamamos cociente y a r residuo. </li></ul>
  9. 9. Propiedades de divisibilidad <ul><li>n|n siempre se cumple </li></ul><ul><li>Si n|m y m|n entonces n=m </li></ul><ul><li>Si n|m y m|s entonces n|s </li></ul><ul><li>Si n|m entonces n|k(m). n divide a todos sus múltiplos </li></ul>
  10. 10. NÚMEROS PRIMOS
  11. 11. Números primos <ul><li>Dentro de las ciencias computacionales, el estudio de los números primos es de suma importancia en muchos temas. </li></ul><ul><li>Un ejemplo es los algoritmos de encriptación de datos como el RSA que se basa en el producto de números primos grandes (mayores que 10 100 ) </li></ul>
  12. 12. Números primos <ul><li>Un número primo se define como aquel número que es divisible solamente por el 1 y por sí mismo. </li></ul><ul><li>Por ejemplo: 3, 7, 11, 311 son ejemplos de números primos. </li></ul><ul><li>Números como el 4,8,32 no son números primos. </li></ul><ul><li>Los números que no son primos se denominan compuestos. </li></ul>
  13. 13. Ejercicio 1 <ul><li>Escribe un método esPrimo que reciba como parámetro n, y devuelva true si n es un número primo. </li></ul><ul><li>De lo contrario regresar false. </li></ul><ul><li>Condiciones : </li></ul><ul><li>Tu programa deberá correr en 1 segundo o menos. </li></ul><ul><li>Recuerda el uso del operador % </li></ul><ul><li>x%y = 0 si y divide a x </li></ul>
  14. 14. Ejercicio 1… primer acercamiento <ul><li>Sin duda el primer acercamiento es un algoritmo O(n): </li></ul><ul><ul><li>int i; </li></ul></ul><ul><li>for (i=2;i<n;i++) </li></ul><ul><ul><li>if (n%i==0) </li></ul></ul><ul><ul><ul><li>return false ; </li></ul></ul></ul><ul><li>return true ; </li></ul>
  15. 15. Ejercicio 1… primer acercamiento <ul><li>Sin embargo, necesitamos algo mucho mejor que O(n) para resolver 2147483647 en menos de 1 segundo, que es nuestro peor caso (el número primo más grande en el rango de n). </li></ul>
  16. 16. Ejercicio 1… Segundo acercamiento <ul><li>Pregunta: </li></ul><ul><li>¿Hasta dónde tenemos que revisar para asegurarnos que no necesitamos revisar más? </li></ul>
  17. 17. Ejercicio 1… Segundo acercamiento <ul><li>Respuesta: </li></ul>
  18. 18. Ejercicio 2... <ul><li>Implementa un algoritmo de menor complejidad para resolver el problema anterior. </li></ul>
  19. 19. Ejercicio 2 <ul><li> if (n<=1) </li></ul><ul><li>return true; </li></ul><ul><li>if (n==2) </li></ul><ul><li>return true; </li></ul><ul><li>if (n%2==0) </li></ul><ul><li>return false; </li></ul><ul><li>int i; </li></ul><ul><li>int tope=(int)Math.sqrt(n); </li></ul><ul><li>for (i=3;i<=tope;i+=2) </li></ul><ul><li>if (n%i==0) </li></ul><ul><li>return false ; </li></ul><ul><li>return true ; </li></ul>
  20. 20. Ejercicio 3 <ul><li>Escribe un método primos que reciba un entero n (n<1’000,000) como parámetro y que escriba todos los números primos del 1 al n </li></ul>
  21. 21. Ejercicio 3… primer acercamiento <ul><li>El primer acercamiento es llamar un millón de veces a nuestra función esPrimo </li></ul>
  22. 22. La criba de Eratóstenes <ul><li>La manera más eficiente de encontrar todos los primos pequeños fue propuesta por Eratóstenes, un matemático griego. </li></ul><ul><li>Su idea fue poner en una lista todos los enteros menores a n y borrar secuencialmente los múltiplos de los primos menores o iguales a la raíz cuadrada de n. </li></ul><ul><li>Después de este procedimiento sólo los números primos quedarán no tachados en la lista. </li></ul>
  23. 23. La criba de Eratóstenes - Ejemplo <ul><li>Supongamos n=15 </li></ul><ul><li>Primero tenemos la lista de los 15 números: </li></ul><ul><li>Tomamos el primer número y tachamos sus múltiplos… </li></ul>2 3 4 5 6 7 8 9 10 11 12 13 14 15
  24. 24. La criba de Eratóstenes - Ejemplo <ul><li>Ahora tomamos el siguiente número no tachado, 3, y tachamos sus múltiplos… </li></ul><ul><li>El 4 es mayor que la raíz cuadrada de 15, así que no tiene sentido revisarlo. </li></ul>
  25. 25. La criba de Eratóstenes -Ejemplo <ul><li>Podemos observar que han quedado no tachados los números primos menores que 15 </li></ul>
  26. 26. Ejercicio 4 <ul><li>Implementa la Criba de Eratóstenes. </li></ul>
  27. 27. Ejercicio 4 <ul><li>Para implementar la Criba de Eratóstenes necesitaremos un arreglo de booleanos donde arreglo en la posición i será true sí i es número primo. De lo contrario, el arreglo en la posición i será false. </li></ul>
  28. 28. Ejercicio 4 - Criba <ul><li>void criba( int MAX) { </li></ul><ul><li>int i,j; </li></ul><ul><li>for (i=0;i<MAX;i++) primes[i] = 1; </li></ul><ul><li>for (i=2;i<=(int)sqrt(MAX);i++) </li></ul><ul><ul><li>if (primes[i]) </li></ul></ul><ul><ul><li>for (j=i;j*i<MAX;j++) </li></ul></ul><ul><li>primes[i*j] = 0; </li></ul><ul><li>} </li></ul>
  29. 29. FACTORIZACION
  30. 30. Teorema Fundamental de la Aritmética <ul><li>Cualquier número positivo puede ser expresado como producto de números primos de una única manera. </li></ul><ul><li>El orden de los factores no altera el producto. </li></ul>
  31. 31. ¿Y el 1? <ul><li>El número 1 no es ni primo ni número compuesto. 1 no es compuesto porque no tiene dos divisores diferentes. Y si el 1 fuera primo, entonces, el número 10 por ejemplo, tiene dos diferentes representaciones como producto de primos: </li></ul><ul><li>10=5(2)(1) </li></ul><ul><li>10=5(2) </li></ul><ul><li>Lo cual contradice el Teorema Fundamental de la Aritmética. </li></ul>
  32. 32. Teorema de Euclides <ul><li>La cantidad de números primos es infinita. </li></ul><ul><li>Para demostrar esto, consideremos sólo n números primos, p 1 , p 2 , p 3 …p n . Pero no hay un número primo entre ellos que divida a: </li></ul><ul><li>Así que N no puede ser compuesto, por lo tanto es número primo. </li></ul>
  33. 33. Ejercicio 5 – Conjetura de Goldbach <ul><li>Para cualquier entero (n>3) existen dos números primos, p 1 y p 2 tales que p 1+ p 2 =n. Tu tarea es encontrar todas las parejas (p 1, p 2 ) con que cumplan la condición para cualquier n par ( ) </li></ul><ul><li>Por ejemplo, para n=10 tenemos 2 parejas, 10=5+5 y 10=3+7 </li></ul>
  34. 34. Ejercicio 6 – Tamaño de Mantas (Topcoder SRM 304 DIV2 250p) <ul><li>Las mantas se venden en varios tamaños. De hecho, podemos encontrar mantas de cualquier ancho y alto entero, excepto que no hay mantas que tengan diferentes tamaños de ancho y alto que sean pares ambos números. Por ejemplo, podemos encontrar una manta de 4x4 pero no una de 2x4. Queremos saber cuantas mantas diferentes podemos escoger dada el área. </li></ul>
  35. 35. Ejercicio 6 – Tamaño de Mantas (Topcoder SRM 304 DIV2 250p) <ul><li>No cuentes la misma manta dos veces, una manta de 6x9 es la misma que una de 9x6 y debe ser contada sólo una vez. </li></ul>
  36. 36. Ejercicio 7 – Primos Ingenieriles (Topcoder SRM 181 DIV2 1000p) <ul><li>Un número primo es un número que solo es divisible por 1 y por sí mismo. Se ha demostrado que un algoritmo de tiempo polinomial sublinear determina la primalidad de un número con certeza, no como las pruebas probabilísticas, pero es bastante complicado. Debe existir un mejor camino…. </li></ul>
  37. 37. Ejercicio 7 – Primos Ingenieriles (Topcoder SRM 181 DIV2 1000p) <ul><li>..en ingeniería no son muy requeridas las soluciones exactas, sólo buenas aproximaciones. Entonces, un primo ingenieril de orden N es cualquier número que no es divisible por los primeros N números primos, dado que los primos más pequeños son mas fáciles de recordar: 2,3,5 y asi sucesivamente. Nota que 1 no es considerado como primo en este caso… </li></ul><ul><li>Dado N entero, tu programa debe regresar el primo ingenieril más pequeño de orden N que no es primo. </li></ul>
  38. 38. Factorización <ul><li>¿Cómo se podría encontrar la descomposición en números primos de un número N ? : </li></ul>
  39. 39. Factorización <ul><li>La técnica más simple de factorización representa un método de “fuerza bruta” en donde vamos a intentar dividir a n por todos los números i no mayores a la raíz cuadrada de n . </li></ul>
  40. 40. Factorización <ul><li>void factorizar(int n) { </li></ul><ul><li>int i; </li></ul><ul><li>for (i=2;i<=(int)sqrt(n);i++) { </li></ul><ul><li>while (n % i == 0) { </li></ul><ul><li>System.out.println(i); </li></ul><ul><li>n = n/i; </li></ul><ul><li>} </li></ul><ul><li> } </li></ul><ul><li>if (n > 1) </li></ul><ul><li>printf (&quot;%d&quot;,n); </li></ul><ul><li>} </li></ul>
  41. 41. MÁXIMO COMÚN DIVISOR
  42. 42. El MCD <ul><li>El Máximo Común Divisor (MCD) de dos números, n y m, es el número más grande tal que divide tanto a n como a m. Por ejemplo, MCD(205,10)=5 </li></ul><ul><li>Es importante notar que siempre existe el MCD de dos números ya que el 1 divide a todos los naturales. </li></ul>
  43. 43. El MCD <ul><li>Un algoritmo para calcular el MCD podría ser el siguiente, recorremos con un ciclo a partir del mínimo de n y m hacia abajo hasta encontrar el primer divisor de ambos. Este entonces será el más grande. </li></ul><ul><li>for (int i=min(n,m); i>=1; i--) </li></ul><ul><ul><li>if (n%i==0 && m%i==0) </li></ul></ul><ul><ul><ul><li>return i; </li></ul></ul></ul>
  44. 44. El MCD <ul><li>Existe un método más rápido llamado el Algoritmo de Euclides, el cual itera sobre dos números hasta encontrar un 0. </li></ul>
  45. 45. El MCD <ul><li>Como ejemplo, encontremos el MCD de 205 y 10. Empezaremos a expresar el número mayor (205) en términos del menor (10) más un residuo: </li></ul><ul><li>205= ( 10 x20)+5 </li></ul><ul><li>Ahora hacemos lo mismo con el 10 y el 5: </li></ul><ul><li>10= ( 5 x2)+0 </li></ul><ul><li>El número que haga que se regrese un 0 como residuo será nuestro MCD. Por lo tanto, el 5 es el MCD de 205 y 10. </li></ul>
  46. 46. Ejercicio 8 <ul><li>Implementa el Algoritmo de Euclides. </li></ul><ul><li>Nota: la versión recursiva es más corta. </li></ul>
  47. 47. Ejercicio 8 – Algoritmo de Euclides – Versión Recursiva <ul><li>public int MCD(int n , int m ) </li></ul><ul><li>{ </li></ul><ul><li>if (m>n) </li></ul><ul><li>return MCD(m,n); </li></ul><ul><li>if (m==0) </li></ul><ul><li>return n; </li></ul><ul><li>return MCD(m,n%m); </li></ul><ul><li>} </li></ul>
  48. 48. MÍNIMO COMÚN MÚLTIPLO
  49. 49. El MCM <ul><li>El Mínimo Común Múltiplo de dos números n y m es el menor número que es múltiplo tanto de m como de n. </li></ul><ul><li>Por ejemplo, el MCM de 4 y 6 es 12 </li></ul>
  50. 50. El MCM <ul><li>El MCM puede ser encontrado usando el MCD con la siguiente propiedad: </li></ul>
  51. 51. Ejercicio 9 – OIEG <ul><li>Escribe un programa que dadas n<100 fracciones expresadas calcule la suma y la exprese como una fracción irreducible. </li></ul><ul><li>Ejemplo: </li></ul>Entrada Salida 3 1 5 3 2 3 10 19 10
  52. 52. CONVERSIÓN DE BASES
  53. 53. Conversión de Bases <ul><li>Dado que en la computación es muy común el uso del sistema binario como representación de estados encendidos y apagados, también es muy común la necesidad de convertir de este sistema a decimal y viceversa. </li></ul>
  54. 54. Conversión de Bases <ul><li>Considera el número decimal12345. Lo podemos expresar de la siguiente manera: </li></ul><ul><li>Observa como el exponente de la base ( 10 ) va aumentando en una unidad conforme avanzamos de derecha a izquierda en el número. </li></ul>
  55. 55. Conversión de Bases <ul><li>En el sistema binario ocurre lo mismo. Considera el número 111011, de igual manera lo podemos expresar así: </li></ul><ul><li>Lo que acabamos de realzar es una conversión de base binario a base decimal. Para cualquier base aplica la misma metodología. </li></ul>
  56. 56. Ejercicio 10 <ul><li>Haga un programa que convierta de un entero en base B ( ) a un número decimal. </li></ul>
  57. 57. Ejercicio 10 <ul><li>int aDecimal(int n, int b){ </li></ul><ul><li>int resultado=0; </li></ul><ul><li>int multiplicador; </li></ul><ul><li>while (n>0) { </li></ul><ul><li>resultado+=(n%10)*multiplicador; </li></ul><ul><li>multiplicador*=b; </li></ul><ul><li>n/=10; </li></ul><ul><li>} </li></ul><ul><li>return result; </li></ul><ul><li>} </li></ul>
  58. 58. Conversión Decimal > Otra base <ul><li>Para convertir desde un número decimal a cualquier otra base se sigue este algoritmo. Si queremos convertir el 23 a base 2: </li></ul><ul><li>Tomamos los residuos y nos queda el número 10111 binario, que en decimal equivale al 23. </li></ul>
  59. 59. Conversión Decimal > Otra base <ul><li>Para convertir a cualquier otra base solo se sustituye el 2 en el procedimiento anterior por la base b. </li></ul>
  60. 60. Ejercicio 11 <ul><li>Implementa el algoritmo anterior. Convierte un número decimal N a cualquier base B </li></ul>
  61. 61. Ejercicio 11 <ul><li>int decimalAOtraBase(int n, int b){ </li></ul><ul><li>int resultado=0; </li></ul><ul><li>int multiplicador; </li></ul><ul><li>while (n>0) { </li></ul><ul><li>resultado+=(n%b)*multiplicador; </li></ul><ul><li>multiplicador*=10; </li></ul><ul><li>n/=b; </li></ul><ul><li>} </li></ul><ul><li>return result; </li></ul><ul><li>} </li></ul>

×