static bool TakOut3b(out TakOut3d again, out int answer, int x, int y, int z) { //return TakOut3a (out again, out answer, x - 1, y, z); answer = 0; again = new TakOut3d(delegate(out TakOut3d aa, out int nn) { return(TakOut3a(out aa, out nn, x - 1, y, z)); }); return(true); }
static bool TakOut3a(out TakOut3d again, out int answer, int x, int y, int z) { if (!(y < x)) { again = null; answer = z; return(false); } TakOut3d xagain; int x1; TakOut3d yagain; int y1; TakOut3d zagain; int z1; for (bool a = TakOut3b(out xagain, out x1, x, y, z); a; a = xagain(out xagain, out x1)) { } ; for (bool a = TakOut3b(out yagain, out y1, y, z, x); a; a = yagain(out yagain, out y1)) { } ; for (bool a = TakOut3b(out zagain, out z1, z, x, y); a; a = zagain(out zagain, out z1)) { } ; return(TakOut3a(out again, out answer, x1, y1, z1)); }
static bool TakOut3b(out TakOut3d again, out int answer, int x, int y, int z) { //return TakOut3a (out again, out answer, x - 1, y, z); answer = 0; again = new TakOut3d (delegate (out TakOut3d aa, out int nn) { return TakOut3a (out aa, out nn, x - 1, y, z); }); return true; }
static bool TakOut3a(out TakOut3d again, out int answer, int x, int y, int z) { if (!(y < x)) { again = null; answer = z; return false; } TakOut3d xagain; int x1; TakOut3d yagain; int y1; TakOut3d zagain; int z1; for (bool a = TakOut3b (out xagain, out x1, x, y, z); a; a = xagain (out xagain, out x1)) { }; for (bool a = TakOut3b (out yagain, out y1, y, z, x); a; a = yagain (out yagain, out y1)) { }; for (bool a = TakOut3b (out zagain, out z1, z, x, y); a; a = zagain (out zagain, out z1)) { }; return TakOut3a (out again, out answer, x1, y1, z1); }