*por favor me ajuda a resolver isso em c*
Faça um algoritmo para calcular um valor A elevado a um expoente B. Os valores A e B deverão
ser lidos. Não usar A** B.
Soluções para a tarefa
Resposta:
include <stdio.h>
int main()
{
int a, b, res = 1, aux;
printf("Digite o valor de a: ");
scanf("%d", &a);
printf("Digite o valor de b: ");
scanf("%d", &b);
aux = b;
// enquanto aux for diferente de 0
while(aux--) {
res*=a;
}
printf("%d ^ %d = %d", a, b, res);
return 0;
}
Explicação:
o processo do cálculo de A elevado a B está sendo efetuado dentro do while, onde realiza-se a multiplicação do valor A, B vezes.
o valor de B é decrementado a cada loop. ao ser igual a 0, o loop será finalizado. 0 == false.
lembrando que o decremento (--) após a variável, permite que o valor atual da variável seja avaliado primeiro para então realizar o decremento do valor.
exemplo do funcionamento do algoritmo:
A = 2
B = 3
while B(3)--
res(1)*=A(2); // res será 2
while B(2)--
res(2)*=A(2); // res será 4
while B(1)--
res(4)*=A(2); // res será 8
while B(0)--, não entra no laço, pois 0 é igual a falso.
res terminou portanto com o valor de 8.