Повторное сложение имитирует умножение.
Повторное умножение имитирует возведение в степень.
Просто сделайте два цикла, один внутри другого: внутренний цикл для имитации умножения и внешний цикл для имитации возведения в степень.
РЕДАКТИРОВАТЬ: вот рекурсивный метод.Превратить его в пару петель не должно быть слишком сложно. Проверено на кодовой панели .
#include <stdio.h>
int mul(int b, int e) {
if (e == 0) return 0;
if (e == 1) return b;
return b + mul(b, e - 1); /* additions only */
}
int expo(int b, int e) {
if (e == 0) return 1;
if (e == 1) return b;
return mul(b, expo(b, e-1));
}
int main(void) {
printf("3^0 is %d\n", expo(3, 0));
printf("3^1 is %d\n", expo(3, 1));
printf("3^2 is %d\n", expo(3, 2));
printf("3^3 is %d\n", expo(3, 3));
printf("3^4 is %d\n", expo(3, 4));
return 0;
}