#include #include int f_iter(int a, uint b) { int acc = 1; while (b > 0) { acc = acc * a; b = b - 1; } return acc; } int rec(int acc, int a, uint b) { if (b == 0) { return acc; } else { return rec(acc * a, a, b - 1); } } int f_rec(int a, uint b) { return rec(1, a, b); } int f_exp(int a, uint b) { if (b == 1) { return a; } else if (b % 2 == 0) { return f_exp(a * a, b / 2); } else { return a * f_exp(a * a, (b - 1) / 2); } } int main() { int a = 6; uint b = 7; printf("Méthode iterative : %d^%d = %d\n", a, b, f_iter(a, b)); printf("Méthode recursive : %d^%d = %d\n", a, b, f_rec(a, b)); printf("Méthode d'exponentation rapide : %d^%d = %d\n", a, b, f_exp(a, b)); exit(0); }