Mutual recursion: Difference between revisions
Content added Content deleted
(php) |
(obj c w/o framework) |
||
Line 151: | Line 151: | ||
System.out.println(m(i)); |
System.out.println(m(i)); |
||
} |
} |
||
}</lang> |
|||
=={{header|Objective-C}}== |
|||
Basically for Objective-C is valid what stated for C. In this code we show the use of two class method; this works since we need an <tt>interface</tt> block that is like declaration of functions in C code. |
|||
<lang objc>#import <objc/Object.h> |
|||
@interface Hofstadter : Object |
|||
+ (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; |
|||
}</lang> |
}</lang> |
||