RosettaCodeData/Task/Mutual-recursion/Objective-C/mutual-recursion.m

35 lines
524 B
Mathematica
Raw Permalink Normal View History

2014-04-02 16:56:35 +00:00
#import <Foundation/Foundation.h>
2013-04-10 22:43:41 -07:00
2014-04-02 16:56:35 +00:00
@interface Hofstadter : NSObject
2013-04-10 22:43:41 -07:00
+ (int)M: (int)n;
+ (int)F: (int)n;
@end
@implementation Hofstadter
+ (int)M: (int)n
{
if ( n == 0 ) return 0;
return n - [self F: [self M: (n-1)]];
}
+ (int)F: (int)n
{
if ( n == 0 ) return 1;
return n - [self M: [self F: (n-1)]];
}
@end
int main()
{
int i;
for(i=0; i < 20; i++) {
printf("%3d ", [Hofstadter F: i]);
}
printf("\n");
for(i=0; i < 20; i++) {
printf("%3d ", [Hofstadter M: i]);
}
printf("\n");
return 0;
}