/*Copyright ElohimTov LLC*/ /* //Name: ElohimTov Solve Code - Conditional Statements - Ojective-C Solution //Problem: HackerRank - 30 Days of Code - Conditional Statements //Current File: ElohimTovSolve_CondStatements.(objc).txt //Compile-able File: ElohimTovSolve_CondStatements.objc //Date: 05/21/2021 //Tale: ElohimTov Solve's Solution to HackerRank.com's // Conditional Statements problem, in Objective-C programming language. // Problem link at https://elohimtov.com/elohimtov.info. */ //Objective-C code begins #import #import #import @interface NSString (NumberFromString) - (NSNumber *) numberFromString:(NSNumberFormatter *)formatter; @end @implementation NSString (NumberFromString) - (NSNumber *) numberFromString:(NSNumberFormatter *)formatter { NSNumber *number = [formatter numberFromString:[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]; if (number == nil) { [NSException raise:@"Bad Input" format:@"%@", self]; } return number; } @end int main(int argc, const char* argv[]) { @autoreleasepool { NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; NSData *availableInputData = [[NSFileHandle fileHandleWithStandardInput] availableData]; NSString *availableInputString = [[NSString alloc] initWithData:availableInputData encoding:NSUTF8StringEncoding]; NSArray *availableInputArray = [availableInputString componentsSeparatedByString:@"\n"]; NSUInteger currentInputLine = 0; NSNumber *N = [[[availableInputArray objectAtIndex:currentInputLine] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] numberFromString:numberFormatter]; currentInputLine += 1; //create integer constants NSNumber *one = [NSNumber numberWithInt:1]; NSNumber *two = [NSNumber numberWithInt:2]; NSNumber *five = [NSNumber numberWithInt:5]; NSNumber *six = [NSNumber numberWithInt:6]; NSNumber *twenty = [NSNumber numberWithInt:20]; //creat string constants NSString *string1 = @"Weird"; NSString *string2 = @"Not Weird"; //convert NSStrings to chars strings const char *char_string1 = [string1 UTF8String]; const char *char_string2 = [string2 UTF8String]; //check integer input and print corresponding output if (([N intValue] % [two intValue]) == [one intValue]) { printf("%s", char_string1); } else //N is an even number { if (([two intValue]<=[N intValue]) && ([N intValue]<=[five intValue])) printf("%s", char_string2); else if (([six intValue]<=[N intValue]) && ([N intValue]<=[twenty intValue])) printf("%s", char_string1); else //N is even and greater than integer number 20 printf("%s", char_string2); }//ends outer if-else statement }//ends auto release pool return 0; }// ends function main //Objective-C code ends /*Copyright ElohimTov LLC*/