En esta entrada explicaremos cómo invertir un numero ingresado en C (testeado en Dev-C++).
Como programa principal.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int N, Resto, Invertido=0; //Declaración de variables
printf("Ingrese el numero que desea invertir \n"); //Muestra lo que deseamos pedir
scanf("%d", &N); //Luego de que es ingresado, lo guarda en la variable N
while(N! = 0) //Ciclo iterativo que va utilizando cada digito del numero
{
Resto=N%10; //Guarda el resto de la division del numero y 10, para asi guardar cada digito
N=N/10; //Disminuye el numero para así poder utilizar el digito siguiente.
Invertido=Invertido*10+Resto; //Invierte el numero directamente
}
printf("Su nuevo numero invertido es %d \n", Invertido);
system("pause");
}
Ahora escribiremos el mismo código, pero tomado como función. Es casi idéntico al anterior, pero luego nombraré la principal diferencia.
#include <stdio.h>
#include <stdlib.h>
int InvertirNum(int N)
{
int Invertido=0, Resto;
while(N!=0)
{
Resto=N%10;
N=N/10;
Invertido=Invertido*10+Resto;
}
return Invertido;
}
int main()
{
int N, Respuesta;
printf("Ingrese el numero que desea invertir \n");
scanf("%d", &N);
Respuesta=InvertirNum(N);
printf("El numero invertido es %d \n", Respuesta);
system("pause");
}
La gran diferencia en usarlo como función, es que luego puede ser llamado cuantas veces sea necesario sin escribir todo el código denuevo, sino que solo llamandola con un parametro y usandola en alguna sentencia (asignarlo a variable, hasta incluso en un print). Es una forma muy útil de ahorrar código, entre otras cosas.
Y hecho!
MUCHÍSIMAS GRACIAS!
ResponderEliminarpor que usas el 10?
ResponderEliminarPREGUNTA4:
ResponderEliminarHaciendo uso de métodos recursivos e iterativos, invertir el valor de N.
Ejemplo: Ingrese Número: 123
El número invertido es=> 321
Se tiene la siguiente expresión recursiva:
int invertir (int n) {
int aux=n,cont=-1;
float pot;
while (aux>=1)//para n números enteros
{
aux=aux/10;
cont=cont+1;
}
pot=pow(10,cont);
if (n < 10) { //caso base
return n;
}
else {//Expresión recursiva
return (n % 10)*pot + invertir (n / 10) ;
}
}
Nota: Se pide implementar la solución en forma recursiva e iterativa
Porfavor como resolver esta pregunta
ResponderEliminarPublic in invertir(int n) {
Eliminarint resultado;
if(n<10){
resultado=1;
}else{
resultado=invertir(n/10)+(n%10)*(int) Math.pow(10,Math.log10(n));
}
return resultado;
}
Implementar una función invertir un número.
Eliminarint invertido = invertir(457848);
cout<<invertido; //848754
como hago si quiero invertir el numero 10? para que mi salida sea 01?
ResponderEliminarCasinos in Montville, CT - MapYRO
ResponderEliminarFind the best casinos in Montville, CT 하남 출장마사지 and Casinos Near 고양 출장샵 Casinos Near Casinos. MapYRO has a list of all casinos in the United 안산 출장마사지 States and has a 대구광역 출장샵 list 안양 출장마사지