Problema - Sumando Digitos

1 Primera Olimpiada de Inform´atica Problema - Sumando Digitos Comenzando con un entero entre 00 y 99 inclusive, escritos como dos d´ıgitos (use un

1 downloads 113 Views 79KB Size

Recommend Stories

Story Transcript

1

Primera Olimpiada de Inform´atica

Problema - Sumando Digitos Comenzando con un entero entre 00 y 99 inclusive, escritos como dos d´ıgitos (use un cero a la izquierda en caso de que el numero sea menor que 10). Realice los siguiente: 1. Sume los dos d´ıgitos. 2. Ahora conc´entrese en el d´ıgito de la derecha, en el n´ umero original y en el de la suma. 3. Finalmente combine estos n´ umeros. Si repetimos este proceso varias veces obtenemos el n´ umero original.. Por ejemplo Inicio Sume los dos d´ ıgitos Combine los dos d´ ıgitos -----------------------------------------------------26 : 2+6 = 08 : "6" y "8" = 68 68 : 6+8 = 14 : "8" y "4" = 84 84 : 8+4 = 12 : "4" y "2" = 42 42 : 4+2 = 06 : "2" y "6" = 26 En este caso tomo 4 pasos para obtener el n´ umero original. Se pide que devuelva el n´ umero de pasos requeridos para obtener el n´ umero original.

Entrada Escriba en una linea que contiene un numero 0 ≤ N ≤ 99.

Salida Escriba en una l´ınea el numero de pasos requeridos para obtener el numero original. Ejemplos de entrada

Ejemplos de salida

26 55 0

4 3 1

Problema Para el dato de entrada siguiente escriba un programa que halle la respuesta. 71 La respuesta que debes entregar es: 12

Primera Olimpiada de Inform´atica

2

An´ alisis y Soluci´ on Para obtener el primer d´ıgito de un numero de dos d´ıgitos hacemos dividimos por 10, el ultimo d´ıgito se halla haciendo modulo 10. Luego nos piden sumar ambos. Para crear un numero nuevo con el primer d´ıgito y el ultimo d´ıgito hallado multiplicamos el primer d´ıgito por 10 y sumamos el segundo.

Programa que resuelve el problema 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

#include #include u s i n g namespace s t d ; int main ( ) { int count = 1 ; int s t a r t ; c i n >>s t a r t ; int n=s t a r t ; f or ( ; ; count++) { int m = n/10 + n %10; n = ( n %10)∗10 + m%10; i f ( n == s t a r t ) { couttamMax ; c i n >>n ; int pez [ n ] ; f or ( int i = 0 ; i >pez [ i ] ; int i , j , r e s p u e s t a =0; f or ( i=tamMin ; i> d e s c a n s o ; c i n >> h o j a s ; c o u t a l t u r a ; c i n >>b ase ; // ( base −1)∗2 −2 i f ( ( 2 ∗ base −4) == a l t u r a − 2 ) cout

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.