/*Copyright ElohimTov LLC*/ /* //Name: ElohimTov Solve Code - Operators - Ojective-C Solution //Problem: HackerRank - 30 Days of Code - Operators //Current File: ElohimTovSolve_Operators.(objc).txt //Compile-able File: ElohimTovSolve_Operators.objc //Date: 05/17/2021 //Tale: ElohimTov Solve's Solution to HackerRank.com's // Operators 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 @interface Solution:NSObject - (void) solve:(NSNumber *)meal_cost tip_percent:(NSNumber *)tip_percent tax_percent:(NSNumber *)tax_percent; @end @implementation Solution /* * Complete the 'solve' function below. * * The function accepts following parameters: * 1. DOUBLE meal_cost * 2. INTEGER tip_percent * 3. INTEGER tax_percent */ - (void) solve:(NSNumber *)meal_cost tip_percent:(NSNumber *)tip_percent tax_percent:(NSNumber *)tax_percent { // Write your code here NSNumber *hundred = [NSNumber numberWithDouble:100]; NSNumber *hundredth = [NSNumber numberWithDouble:0.01]; //calculate tip amount double tip_amount = [tip_percent intValue] * [hundredth doubleValue] * [meal_cost doubleValue]; //calculate tax amount double tax_amount = [tax_percent intValue] * [hundredth doubleValue] * [meal_cost doubleValue]; //calculate meal cost double total_cost = tip_amount + tax_amount + [meal_cost doubleValue]; //round meal cost to the nearest integer number int rounded_cost = lroundf(total_cost); //print meal cost using printf printf("%i", rounded_cost); //another way of printing meal cost using nslog //NSLog(@"%d", rounded_cost); }//ends solve function @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 *meal_cost = [[[availableInputArray objectAtIndex:currentInputLine] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] numberFromString:numberFormatter]; currentInputLine += 1; NSNumber *tip_percent = [[[availableInputArray objectAtIndex:currentInputLine] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] numberFromString:numberFormatter]; currentInputLine += 1; NSNumber *tax_percent = [[[availableInputArray objectAtIndex:currentInputLine] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] numberFromString:numberFormatter]; currentInputLine += 1; [[[Solution alloc] init] solve:meal_cost tip_percent:tip_percent tax_percent:tax_percent]; }//ends @autoreleasepool return 0; }//ends main function //Objective-C code ends /*Copyright ElohimTov LLC*/