Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- abstract class Function{
- String name;
- public Function(String name) {
- super();
- this.name = name;
- }
- @Override
- public String toString() {
- return name;
- }
- abstract void apply();
- }
- public class main {
- private static int P;
- private static int a;
- private static int b;
- private static int n;
- private static long count;
- static int indent = 0;
- static void find(final int n, final Function func){
- System.out.println(times(indent) + "find(" + n + "," + func + ")");
- indent++;
- if(n == 1){
- for(int i = 0; i < a; i++) func.apply();
- } else if (n == 2){
- for(int i = 0; i < b; i++) func.apply();
- } else {
- find(n-1,new Function("find(" + (n-2) + "," + func.toString() + ")" ){
- @Override
- public void apply() {
- find(n-2,func);
- }
- });
- }
- indent--;
- }
- private static String times(int indent2) {
- String s = "";
- for(int i = 0; i < indent2; i++){
- s += " ";
- }
- return s;
- }
- public static void main(String[] args) {
- a = 4;
- b = 5;
- n = 5;
- P = 13;
- find(n, new Function("funny") {
- @Override
- public void apply() {
- count++;
- }
- });
- System.out.println(count%P);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement