Вы находитесь на странице: 1из 4

PRACTICA

1. Escribir un programa recursivo que permita devolver cuantos dígitos pares y cuantos
dígitos impares tiene un número.
#include<iostream>
#include<conio.h>
using namespace std;
int DigitosPares(int n, int c)
{
if (n==0) return c;
else if ((n%10)%2==0) return (DigitosPares(n/10,c+1));
else return (DigitosPares(n/10,c));
}
int DigitosImpares(int n, int c)
{
if (n==0) return c;
else if ((n%10)%2!=0) return (DigitosImpares(n/10,c+1));
else return (DigitosImpares(n/10,c));
}
int main()
{
int n,dp,di;
cout<<"Ingrese numero : "; cin>>n;
dp=DigitosPares(n,0);
di=DigitosImpares(n,0);
cout<<"\nEl nuemro tiene : "<<dp<<" Digitos pares";
cout<<"\nEl nuemro tiene : "<<di<<" Digitos impares";
return 0;
}
2. Escribir un programa recursivo que devuelva la suma de los dígitos impares y la suma de
dígitos pares.
#include<iostream>
#include<conio.h>
using namespace std;
int SumaPares(int n, int c)
{
if (n==0) return c;
else if ((n%10)%2==0)

return (SumaPares(n/10,(n%10)+c));
else return (SumaPares(n/10,c));
}
int SumaImpares(int n, int c)
{
if (n==0) return c;
else if ((n%10)%2!=0) return (SumaImpares(n/10,(n%10)+c));
else return (SumaImpares(n/10,c));
}
int main()
{
int n,sp,si;
cout<<"Ingrese un numero : "; cin>>n;
sp=SumaPares(n,0);
si=SumaImpares(n,0);
cout<<"\nLa suma de los digitos pares es : "<<sp;
cout<<"\nla suma de los digitos pares es : "<<si;
return 0;
}
3. Ingresado un número, que devuelva la cantidad de dígitos primos.
#include<iostream>
#include<conio.h>
using namespace std;
int Primo(int n, int c)
{
if (n==0) return c;
else
for(int i=2;i<(n%10)+1;i++)
{
if ((n%10)%i==0)
if((n%10)==i) return (Primo(n/10,c+1));
else return Primo(n/10,c);
}

}
int main()
{
int n,np;
cout<<"Ingrese un numero : "; cin>>n;
np=Primo(n,0);
cout<<"\nLa cantidad de digitos primos es : "<<np;
return 0;
}
4. Escribir un programa recursivo que invierta un número.
#include<iostream>

#include<conio.h>
using namespace std;
int Invertir(int n, int c)
{
if (n==0) return c/10;
else
{
return Invertir(n/10,((n%10)+c)*10);
}
}
int main()
{
int n,inv;

cout<<"Ingrese un numero : "; cin>>n;


inv=Invertir(n,0);
cout<<"\nEl numero invertido es : "<<inv;
return 0;
}
5. Escribir un programa recursivo que devuelva en dos números distintos los números
formados por dígitos pares y dígitos impares y además cual de los dos es mayor.
#include<iostream>
#include<conio.h>
using namespace std;
int NumeroDePares(int n, int c)
{
if (n==0) return c;
else
if ((n%10)%2==0)
return (NumeroDePares(n/10, ((n%10)+c)*10));
else return (NumeroDePares(n/10,c));
}
int NuemroDeImpares(int n, int c)
{
if (n==0) return c;
else if ((n%10)%2!=0)
return (NuemroDeImpares(n/10, ((n%10)+c)*10));
else return (NuemroDeImpares(n/10,c));
}
int mayor(int a, int b)
{
if (a>b) return a;
else return b;
}
int main()
{
int n,Dp,Di,MAYOR;
cout<<"Ingrese un numero : "; cin>>n;
Dp=NumeroDePares(n,0);
Di=NuemroDeImpares(n,0);
MAYOR=mayor(NumeroDePares(n,0),NuemroDeImpares(n,0));
cout<<"\nEl numero formado por digitos pares es : "<<Dp;
cout<<"\nEl numero formado por digitos impares es : "<<Di;
cout<<"\nEl mayor de los dos numeros es es : "<<MAYOR;
return 0;
}

Вам также может понравиться