#import <Foundation/Foundation.h> NSDecimalNumber* invertDecimalNumber(NSDecimalNumber *x, int *count) { if ( *count > 0 ) { x = [[NSDecimalNumber one] decimalNumberByDividingBy:x]; *count -= 1; return invertDecimalNumber( x, count ); } else { return x; } } int main(int argc, const char * argv[]) { @autoreleasepool { for ( int c = 0; c <= 4 ; c += 2 ) { NSLog(@""); for ( int e = 15; e <= 42; e++ ) { NSString *xStr = [NSString stringWithFormat:@"7e+%d", e]; int r = c; NSLog(@"x=%5@, after %d inverts=%22@", xStr, r, invertDecimalNumber( [NSDecimalNumber decimalNumberWithString:xStr], &r )); //NSLog(@"x=%5@, after %d inverts=%22@", xStr, r, invertDecimalNumber( [NSDecimalNumber decimalNumberWithMantissa:7 exponent:e isNegative:NO], &r )); } } } return 0; }