saber por pares para numeros numero niños matematicamente impares impar ejemplos como cero objective-c cocoa-touch

objective c - por - Comprobando si un NSInteger es par o impar



numeros pares e impares para niños (6)

Esas otras respuestas deberían funcionar. Tal vez sea un problema con tu makefile o algo así. Piense fuera de ese pedazo de código.

Si todo lo demás falla, simplemente declare el entero como un int. No tienes que declararlo como NSInteger.

He estado intentando comprobar si un NSInteger es par o impar. He encontrado una forma de hacerlo utilizando C, pero no funciona con Objective-C. ¿Cómo haría esto?


Por lo que yo sé. NSInteger , a diferencia de NSNumber , es solo un tipificador para un tipo entero real a lo largo de las líneas de:

typedef long NSInteger;

Así que deberías poder hacer:

NSInteger nsintvar = 77; if ((nsintvar % 2) == 0) { // number is even } else { // number is odd }

Aquí hay un programa completo, compilado bajo Cygwin con GNUstep, que lo ilustra:

#import <stdio.h> #import <Foundation/NSObject.h> int main( int argc, const char *argv[] ) { NSInteger num; for (num = 0; num < 20; num++) { if ((num % 2) == 0) { printf ("%d is even/n", num); } else { printf ("%d is odd/n", num); } } return 0; }

Produce:

0 is even 1 is odd 2 is even 3 is odd 4 is even 5 is odd 6 is even 7 is odd 8 is even 9 is odd 10 is even 11 is odd 12 is even 13 is odd 14 is even 15 is odd 16 is even 17 is odd 18 is even 19 is odd


Utilice el operador "%". Esencialmente, funciona el resto cuando se divide un número. Asi que:

Número 2

Sería = 0 si el número fuera par, ya que un número par dividido por 2 no tiene residuos. Si no es = 0, debe ser impar.


NSInteger se define como int (o long en algunos entornos). Por lo tanto, verificar la rareza es como para int simple:

NSInteger num; if (num % 2) // odd else // even


NSArray *arrayTotal = [NSArray arrayWithObjects:@"A", nil]; // NSArray *arrayTotal = [NSArray arrayWithObjects:@"A", @"B", nil]; // NSArray *arrayTotal = [NSArray arrayWithObjects:@"A", @"B", @"C", nil]; // NSArray *arrayTotal = [NSArray arrayWithObjects:@"A", @"B", @"C", @"D", nil]; // NSArray *arrayTotal = [NSArray arrayWithObjects:@"A", @"B", @"C", @"D", @"E", nil]; NSArray *arrLeft; NSArray *arrRight; NSRange range; range.location = 0; range.length = ([arrayTotal count] % 2) ? ([arrayTotal count] / 2) + 1 : ([arrayTotal count] / 2); arrLeft = [arrayTotal subarrayWithRange:range]; range.location = range.length; range.length = [arrayTotal count] - range.length; arrRight = [arrayTotal subarrayWithRange:range]; NSLog(@"Objects: %lu", (unsigned long)[arrLeft count]); NSLog(@"%@", [arrLeft description]); NSLog(@"Objects: %lu", (unsigned long)[arrRight count]); NSLog(@"%@", [arrRight description]);

Espero eso ayude !!!


NSInteger n = 5; NSLog(@"%s", n & 1 ? "odd" : "even");

o usando si

if (n & 1) { ; // odd } else { ; // even }

con alguna salida:

if (n & 1) { NSLog(@"odd"); } else { NSLog(@"even"); }

el ejemplo de puntero

NSInteger x = 7; NSInteger *y = &x; if (*y & 1) { NSLog(@"odd"); } else { NSLog(@"even"); }