#include #include long puissance_de_2(unsigned n) { long p2 = 1; for (int i = 0; i < n; i++) { p2 = 2 * p2; } return p2; } long puissance_de_2_while(unsigned n) { int i = 0; long p2 = 1; while (i < n) { p2 = 2 * p2; i++; } return p2; } /* Ne fonctionne pas pour n = 0 ! */ long puissance_de_2_do_while(unsigned n) { int i = 0; long p2 = 1; do { p2 = 2 * p2; i++; } while (i < n); return p2; } long puissance_de_2_for_vide(unsigned n) { long p2 = 1; for (int i = 0; i < n; i++, p2 = 2 * p2) ; return p2; } long puissance_de_2_for_break(unsigned n) { long p2 = 1; for (int i = 0;; i++) if (i == n) break; else p2 = 2 * p2; return p2; } static void usage(char *nom_de_la_commande) { fprintf(stderr, "Usage: %s \n", nom_de_la_commande); } int main(int argc, char *argv[]) { if (argc != 2) { usage(argv[0]); return EXIT_FAILURE; } int n = atoi(argv[1]); printf("%ld (for)\n", puissance_de_2(n)); printf("%ld (while)\n", puissance_de_2_while(n)); printf("%ld (do while)\n", puissance_de_2_do_while(n)); printf("%ld (for vide)\n", puissance_de_2_for_vide(n)); printf("%ld (for break)\n", puissance_de_2_for_break(n)); return EXIT_SUCCESS; }