resta de digitos pares e impares... ayudaa!!!

novato
13 de Diciembre del 2005
Pues eso eske no tengo ni idea de como podria hacer... de un numero ke introduces...... ke haga la resta entre los numeros pares e impares....... eso como podria hacerlo? a ver si alguno me ayuda.
Muxas gracias :D

kike
13 de Diciembre del 2005
supongo que se trata de sumar los pares de 1 a n y los impares de 1 a n y luego restarlos
esta funcion te servira

int RestaExtraña(int N)
{
int par=0;
int impar=0;
for(int x=1;x<=N;x++)
{
if(x%2)
impar+=x;
else
par+=x;
}
if(impar>par)
return impar-par;
else
return par-impar;
}

novato
13 de Diciembre del 2005
eske es para ver si es multiplo de 11 o no........ osea lo restas con valor absoluto y listo... si da 0 es multiplo de 11 sino pues no, no? muxas gracias creo ke eso me puede servir no? si no es asi si puedes me lo explicas, me harias un gran favor.

gracias :D

kike
13 de Diciembre del 2005
el rollo esta en ir sumando los numeros comprendidos entre 1 y el valor introducido, si es un numero par(por ejeplo 4) 4%2=0 entonces sumas 4 a la variable par, si (por ejemplo 3) 3%2=1.5 entonces sumas 3 a la variable impar. Al final del bucle la variable par tiene la suma total de los pares y la variable impar la suma de los impares, por ultimo la resta segun sea mas grande uno o el otro.

Esa es la idea,

novato
13 de Diciembre del 2005
si, esa es la idea....... y entonces ke tengo yo mal ahi? :P

kike
13 de Diciembre del 2005
Pues quitas la K y la llamada ABS y dejas el codigo asi
cuando termina el bucle tienes dos variables y lo que te pide el enunciado es la resta


int par, impar, x;
cout << "Introduzca numero" << endl;
cin >> num;
par=0;
impar=0;
for(x=1; x<=num; x ++)
{
if(x%2)
impar += x;
else
par += x;
}
/*hasta aqui tenemos la suma de los pares e impares*/
cout<<"total suma numeros pares:"<<pares<<endl;
cout<<"total suma numeros impares:"<<impares<<endl;
if(par>impar)
cout<<"resta="<<par-impar<<endl;
else
cout<<"resta="<<impar-par<<endl;

prueba asi

novato
13 de Diciembre del 2005
pero eso....... no son los digitos del numeor ke introduzco... no es asi? :P eso es los numeros menores al numero ke he introducido... yo lo ke necesito es ke me haga la suma de los digitos pares y la suma de los digitos impares del numero ke he introducido y luego al restarlo si ves 0 es multiplo de 11 sino.. pues no... sabes lo ke te digo?

ISAIAS DUQUE GOMEZ
13 de Diciembre del 2005
COMO VAS, YA TERMINASTE LA SUMA DE PARES E IMPARES?..
VEO QUE ESTAS BATALLANDO MUHCO, DIGO PARA SABER, SINO PARA HACERLO.. HABER EN QUE AYUDO..

SALUDOS DESDE ACAPULKITO

novato
13 de Diciembre del 2005
no, no la he hecho aun..... no se como hacerlo porque como me dijo kike eso lo ke hace es mirar los numeros ke hay desde 1 hasta el numero ke introduzca y yo lo ke necesito es sumar los digitos impares y restarlos con los digitos pares del numero introducido......si me puedes ayudar te lo agradeceria muxisimo :D

kike
13 de Diciembre del 2005
ok no te habia entendido, este hace lo que pides.

#include <iostream.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>

void main()
{
char pC[12];
cin.getline(pC,10);

int larg=strlen(pC);

int par=0;
int impar=0;

for(int x=0;x<larg;x++)
{
char c=pC[x];
int n=atoi(&c);
if(n%2)
impar+=n;
else
par+=n;
}
cout<<"resultado"<<endl;
if(par>impar)
cout<<par-impar<<endl;
else
cout<<impar-par<<endl;
getch();
}

novato
13 de Diciembre del 2005
ya se... eske eso asi.... no coge los digitos del numero ke introduzco...... eso es lo ke falla..

novato
13 de Diciembre del 2005
pues tio..... eso no me funciona.... o no se ke hago yo mal... la verdad.....esto he hecho yo... a ver si alguno me puede ayudar para hacer eso ke necesito...


int par, impar, x, num, k;
cout << "Introduzca numero" << endl;
cin >> num;
par=0;
impar=0;
for(x=1; x<=num; x ++)
{
if(x%2)
impar += x;
else
par += x;
k = abs(par-impar);
}
if (k==0)
{
cout << "es multiplo de 11" << endl;
}
else cout << "no es multiplo de 11" << endl;

gracias de antemano :D