/* d = a c = 11 b = 231 <-----+ d++; <------+ | b--; | | goto (b) 4 -+ | c--; | goto (c) 3 ---+ <---------+ a = d; | | //Nothing happens <-----+ | b = a; | | a = 0; | | c = 2; <-----------+ | | goto (b) 17 -+ <-+ | | | goto 23 | | | -+ | | b--; <-------+ | | | | | c--; | | | | | goto (c) 15 -----+ | | | | a++; | | | | goto 14 -----------+ | | | | | | b = 2; <--------------+ | | goto (c) 26 -+ <-+ | | goto 29 | | -+ | | b--; <-------+ | | | | c--; | | | | goto (c) 24 -----+ | | | //Nothing happens <-+ | | Console.Write(b); | | goto (a) 11 ------------+ | goto 8 -------------------+ ======== PARTIE1 : int d = a; for (int c = 0 ; c < 11 ; ++c) { for (int b = 0 ; b < 231 ; ++b) { d++; } } // d += 231 * 11; // d += 2541; a = d; PARTIE2 : b = a; a = 0; while (true) { c = 2; do { if (b == 0) goto AFTER; b--; c--; } while (c != 0); a++; } // c = 2 - a % 2; // a /= 2; AFTER: b = 2; while (c > 0) { b--; c--; } Console.Write(b); if (a > 0) goto PARTIE2; goto PARTIE1; ======== d = a; while (true) { a = d + 2541; while (a > 0) { c = 2 - a % 2; a /= 2; b = 2 - c; Console.Write(b); } } ======== d = a; while (true) { a = d + 2541; while (a > 0) { b = a % 2; a /= 2; Console.Write(b); } } ======> */ /* Réponse : On cherche un nombre additionné à 2541 dont la représentation binaire (12 bits) et constitué d'une succession de 0 & 1. 010101010101 -> 1365 -> Trop petit 101010101010 -> 2730 -> OK */ // La réponse est : (2730 - 2541) 189