Sie sind auf Seite 1von 7

Algoritmos y programación 1 Samuel Flores

Mgs. Rolando Martinez

TAREA 1 NUMEROS NATURALES

#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;

int contardigitos(int a){


int c;
while (a>0){
a = a / 10;
c++;
}
return c;
}

int concatenardosnumeros(int a, int b){


int c;
if (a < b){
c = a*pow(10, contardigitos(b)) + b;
}
else{c = b*pow(10, contardigitos(a)) + a;
}
return c;
}

int concatenardosnumeros2(int a, int b){


int c;

c = a*pow(10, contardigitos(b)) + b;

return c;
}

int invertirnumero(int a){


int res, inv = 0;
while (a>0){
res = a % 10;
inv = inv * 10 + res;
a = a / 10;
}
return inv;

bool verificarsiserepite(int a, int b){


int res, c = 0;
bool k = false;
while (a > 0){
res = a % 10;
if (res == b){
c++;
}
a = a / 10;
}
if (c > 1){
k = true;
}
Algoritmos y programación 1 Samuel Flores
Mgs. Rolando Martinez
return k;
}

int eliminarrepetidos(int a){


int res, num = 0, c=a;
while (a > 0){
res = a % 10;
if (verificarsiserepite(c, res) == false){
num = num * 10 + res;
}
a = a / 10;
}
num = invertirnumero(num);
return num;
}

int numeroresiduo(int n, int a){


int c = 0, res, num=0;
while (c < a){
res = n % 10;
num = num * 10 + res;
n = n / 10;
c++;
}
return invertirnumero(num);
}

int ubicarnumero(int n, int a){


int band = 0,res,num,p,c=0,t=n,nue;

while (band == 0){


res = n % 10;
if (res >= a){
num = n * 10 + a;
p = numeroresiduo(t, c);
nue = concatenardosnumeros2(num, p);
band = 1;
}
c++;
n = n / 10;
}
return invertirnumero(nue);
}

void plantillaobreros(int n){


int c=1,b,p;
while (c <= n){
cout << "horas trabajadas del obrero " << c << endl;
cin >> b;
p = b * 20;
cout << "salario del obrero " << c << " es " << p << endl;
cout << endl;
c++;
}
}

void adivinarnumero(){
int n, num = 20;
Algoritmos y programación 1 Samuel Flores
Mgs. Rolando Martinez
do{ cout << "intente adivinar el numero que pienso, ingrese un numero" <<
endl;
cin >> n;

if (n == num){
cout << "lo lograste!" << endl;
}
else{
if (n > num){
cout << "demasiado grande" << endl;
}
else{
cout << "demasiado pequeno" << endl;
}
}
} while (n != num);
}

void ponernumeroenvector(int vec[], int&n, int a){


int i;
n = contardigitos(a);

for (i = 0; i < n; i++){


vec[i] = a % 10;
a = a / 10;
}
}

int digitomayor(int vec[], int n){


int i, may = vec[0];
for (i = 0; i < n; i++){
if (vec[i] >may){
may = vec[i];
}
}
return may;
}

void eliminardigito(int vec[], int &n, int a){

for (int i = 0; i < n; i++){


if (vec[i] == a){
for (int c = i; c < n; c++){
vec[c] = vec[c + 1];
}
n--;
i++;
}
}
}

void mostrarvector(int vec[], int n){


int i;
for (i = 0; i < n; i++){
cout<< vec[i];
}
}
Algoritmos y programación 1 Samuel Flores
Mgs. Rolando Martinez
void invertirvector(int vec[], int n){
int aux, i;
for (i = 0; i < n/2; i++){
aux = vec[i];
vec[i] = vec[n - 1 - i];
vec[n - 1 - i] = aux;
}
}

int crapulo(int n){


int sum = 0, res, sum2 = 0, res2, crap;
while (n>0){
res = n % 10;
sum = sum + res;
n = n / 10;
}
if (sum < 10){
crap = sum;
}
else{ while (sum>0){
res2 = sum % 10;
sum2 = sum2 + res2;
sum = sum/ 10;
}crap = sum2;
}
return crap;
}

bool verificarautomorfico(int n){


bool k = false;
int res,num=0, a, c=0;
a = pow(n, 2);
while (c < 2){
res = a % 10;
num = num * 10 + res;
a = a / 10;
c++;
}
if (invertirnumero(num) == n){
k = true;
}
return k;
}

void generarautomorficos(){

for (int i = 0; i < 1000; i++){


if (verificarautomorfico(i) == true){
cout << i << " ";
}
}
}
Algoritmos y programación 1 Samuel Flores
Mgs. Rolando Martinez

void main()
{int a, b, op,vec1[50],c;
do{ cout << "-------------------------------------------------" << endl <<
"ingrese una opcion" << endl;
cout << "1. Concatenar numeros" << endl;
cout << "2. Invertir numero" << endl;
cout << "3. Eliminar digitos repetidos" << endl;
cout << "4. Eliminar digito mayor de un numero natural " << endl;
cout << "5. Ubicar numero" << endl;
cout << "6. Verificar si el numero es capicua" << endl;
cout << "7. Planilla de cancelacion a obreros" << endl;
cout << "8. Adivina un numero" << endl;
cout << "9. crapulo de un numero" << endl;
cout << "10. generar automorficos" << endl;
cout << "0. Salir" << endl;
cin >> op;

switch (op)
{
case 1:
do{ cout << "ingrese un numero entero: " << endl;
cin >> a;
if (a <= 0)
{cout << "no es un numero natural, por favor ";
}
} while (a <= 0);
do{ cout << "ingrese otro numero entero: " << endl;
cin >> b;
if (b <= 0)
{cout << "no es un numero natural, por favor ";
}
} while (b <= 0);

cout << "el numero es: " << concatenardosnumeros(a, b) << endl;

break;

case 2:
do{
cout << "ingrese un numero entero: " << endl;
cin >> a;
if (a <= 0)
{
cout << "los numeros enteros son igual o mayor a
uno, ";
}
} while (a <= 0);
cout << "el numero invertido de " << a << " es: " <<
invertirnumero(a) << endl;
break;

case 3:
do{ cout << "ingrese un numero entero: " << endl;
cin >> a;
if (a <= 0)
Algoritmos y programación 1 Samuel Flores
Mgs. Rolando Martinez
{cout << "los numeros enteros son igual o mayor a uno,
";
}
} while (a <= 0);

cout << "el numero sin digitos repetidos es: " <<
eliminarrepetidos(a) << endl;
break;

case 4:
do{ cout << "ingrese un numero entero: " << endl;
cin >> a;
if (a <= 0)
{cout << "los numeros enteros son igual o mayor a uno, ";
}
} while (a <= 0);
ponernumeroenvector(vec1, b, a);
c = digitomayor(vec1, b);
eliminardigito(vec1, b, c);
invertirvector(vec1, b);
cout << "el numero sin el digito mayor es: ";
mostrarvector(vec1, b);
cout << endl;
break;

case 5:
cout << "ingrese un numero entero ordenado: " << endl;
cin >> a;
cout << "ingrese un numero entero que desea colocar: " << endl;
cin >> b;
a = invertirnumero(a);
cout << "el numero resultante es " << ubicarnumero(a, b) <<
endl;
break;

case 6:
cout << "ingrese un numero entero " << endl;
cin >> a;
b = invertirnumero(a);
if (b == a){ cout << "el numero es capicua" << endl; }
else{ cout << "el numero no es capicua" << endl; }
break;
case 7:
cout << "ingrese numero de obreros " << endl;
cin >> a;
plantillaobreros(a);
break;
case 8:
adivinarnumero();
break;
case 9:
cout << "ingrese un numero entero " << endl;
cin >> a;
cout << "el crapulo de ese numero es " << crapulo(a);
break;
case 10:
cout << "los numeros automorficos menores que 1000 son: " <<
endl;
Algoritmos y programación 1 Samuel Flores
Mgs. Rolando Martinez
generarautomorficos();
break;

}
} while (op != 0);
_getch();
}

Das könnte Ihnen auch gefallen