Elabore um programa que solicita dois números A e B (considere que serão informados apenas valores positivos), onde A representa a base e o B representa o expoente em uma operação de potenciação (AB). Utilizando estruturas de repetição, o programa deverá calcular e imprimir na tela o resultado de AB.
RESTRIÇÃO: este programa deverá fazer esse cálculo sem utilizar a função Math.pow(), ou seja, deverá ser utilizado apenas o operador de multiplicação ou soma para elaborar este algoritmo. Por isso, é necessário o uso de estruturas de repetição.
Lembre como funciona a potenciação a partir dos dois exemplos abaixo:
25 = 2 * 2 * 2 * 2 * 2 = 32
34 = 3 * 3 * 3 * 3 = 81
Soluções para a tarefa
Resposta:
Explicação:*
* SOLUCAO ERRADA tipica.
*/
#include <stdio.h>
int main() {
int x, /* base */
n, /* expoente */
i; /* numero de multiplicoes feitas */
/* Inicializacoes */
printf("\n\tCalculo de potencias\n");
printf("Digite a base (inteiro): ");
scanf("%d", &x);
printf("Digite o expoente (inteiro nao-negativo): ");
scanf("%d", &n);
i = 0;
/* Calculo da potencia */
while (i < n) {
x = x * x;
i = i + 1;
}
printf("\nO valor de %d elevado a %d= %d\n", x, n, x);
return 0;
}
/*
* SOLUCAO CERTA.
*/
#include <stdio.h>
int main() {
int x, /* base */
n, /* expoente */
potencia, /* guarda as potencias parciais */
contador;
printf("\n\tCalculo de potencias\n");
printf("\nDigite um numero inteiro: ");
scanf("%d", &x);
printf("Digite um numero um inteiro nao-negativo: ");
scanf("%d", &n);
/* Inicializacoes */
potencia = 1;
contador = 0;
/* Calculo da potencia */
while (contador != n) {
potencia = potencia * x;
contador = contador + 1;
}
printf("\nO valor de %d elevado a %d: %d\n", x, n, potencia);
return 0;
}