Mutual recursion: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) (Rename Perl 6 -> Raku, alphabetize, minor clean-up) |
|||
Line 1,327: | Line 1,327: | ||
=={{header|Java}}== |
=={{header|Java}}== |
||
Replace translation (that doesn't compile) with a Java native implementation. |
|||
{{trans|C}} |
|||
⚫ | |||
⚫ | |||
import java.util.HashMap; |
|||
{ |
|||
import java.util.Map; |
|||
⚫ | |||
⚫ | |||
public |
public class MutualRecursion { |
||
{ |
|||
⚫ | |||
} |
|||
public static void main(final String args[]) |
public static void main(final String args[]) { |
||
int max = 20; |
|||
{ |
|||
System.out.printf("First %d values of the Female sequence: %n", max); |
|||
⚫ | |||
for (int i = 0; i < max; i++) { |
|||
System.out.println(f(i)); |
|||
System.out.printf(" f(%d) = %d%n", i, f(i)); |
|||
} |
|||
System.out. |
System.out.printf("First %d values of the Male sequence: %n", max); |
||
⚫ | |||
⚫ | |||
System.out.printf(" m(%d) = %d%n", i, m(i)); |
|||
} |
|||
} |
|||
private static Map<Integer,Integer> F_MAP = new HashMap<>(); |
|||
⚫ | |||
if ( F_MAP.containsKey(n) ) { |
|||
return F_MAP.get(n); |
|||
} |
|||
⚫ | |||
F_MAP.put(n, fn); |
|||
return fn; |
|||
} |
|||
private static Map<Integer,Integer> M_MAP = new HashMap<>(); |
|||
private static int m(final int n) { |
|||
if ( M_MAP.containsKey(n) ) { |
|||
return M_MAP.get(n); |
|||
} |
|||
⚫ | |||
M_MAP.put(n, mn); |
|||
return mn; |
|||
} |
|||
⚫ | |||
</lang> |
|||
{{out}} |
|||
First 20 values of the Female sequence: |
|||
f(0) = 1 |
|||
f(1) = 1 |
|||
f(2) = 2 |
|||
f(3) = 2 |
|||
f(4) = 3 |
|||
f(5) = 3 |
|||
f(6) = 4 |
|||
f(7) = 5 |
|||
f(8) = 5 |
|||
f(9) = 6 |
|||
f(10) = 6 |
|||
f(11) = 7 |
|||
f(12) = 8 |
|||
f(13) = 8 |
|||
f(14) = 9 |
|||
f(15) = 9 |
|||
f(16) = 10 |
|||
f(17) = 11 |
|||
f(18) = 11 |
|||
f(19) = 12 |
|||
First 20 values of the Male sequence: |
|||
m(0) = 0 |
|||
m(1) = 0 |
|||
m(2) = 1 |
|||
m(3) = 2 |
|||
m(4) = 2 |
|||
m(5) = 3 |
|||
m(6) = 4 |
|||
m(7) = 4 |
|||
m(8) = 5 |
|||
m(9) = 6 |
|||
m(10) = 6 |
|||
m(11) = 7 |
|||
m(12) = 7 |
|||
m(13) = 8 |
|||
m(14) = 9 |
|||
m(15) = 9 |
|||
m(16) = 10 |
|||
m(17) = 11 |
|||
m(18) = 11 |
|||
m(19) = 12 |
|||
=={{header|JavaScript}}== |
=={{header|JavaScript}}== |