Oi, Wellington! Como você está?
A função potencia()
recebe três argumentos: dois inteiros aa
e bn
, e um inteiro rresultado
que inicialmente é definido como 1 no main()
. O cálculo da potência aa^bb
é realizado multiplicando aa
por ele mesmo bb
vezes.
Abaixo, explorei as etapas executadas pela função, acompanhe comigo:
A função inicia um loop for
que vai de i = 0
até i < bb
. Isso significa que o loop será executado b
vezes;
Dentro do loop, a cada iteração, o rresultado
é multiplicado por aa
. Isso é feito pela linha rresultado = rresultado * aa
;
Após bb
iterações, o loop termina e o rresultado
contém o valor de aa^bb
;
Por fim, o printf
imprime o valor calculado!
Vale enfatizar que, ao considerar o valor inicial de rresultado
como 1, não há alterações no valor final do cálculo, uma vez que quaisquer valores multiplicados por 1 resultam neles mesmos.
Matematicamente falando, é mais ou menos esse processo mental que fazemos ao calcular a potência de um número, que nada mais é do que o resultado da multiplicação dele por si mesmo uma certa quantidade de vezes.
Espero que tenha ficado mais claro, Wellington! Estarei por aqui caso surjam novas dúvidas.
Um abraço!
Ola andrieli,
Obrigado pela ajuda acho que consegui descomplicar, tentando resumi aqui e ve se é isso mesmo.
4 Loops 0 até 3 ou seja (i = 0; i <4; i++) A cada passagem pelo loop o resultado fica guardado na variavel Resultado substituindo o valor anterior correto?
Resultado (vale1) = resultado(vale1) * a(vale2) = 2x1=2 - Loop 0
Resultado (vale2) = resultada(vale2) * a(vale2) = 2x2 = 4 - Loop 1
Resultado (vale 4) = Resultado(vale4) * a(vale2) 4x2 = 8 - Loop 2
Resultado (vale 8) = Resultado (vale8) * a(vale2) 8x2= 16 - Loop 3
Resultado = 16
Oi, Wellington!!
É isso mesmo, para cada laço de repetição, armazenamos o valor obtido na multiplicação envolvendo o resultado anterior e o valor de aa
. Fico feliz que tenha conseguido compreender a lógica por detrás do código!
Lembre-se que você sempre pode contar com o fórum em caso de dúvidas.
Até mais!