Quanto vale k no fim da execução do seguinte trecho de códig...
Quanto vale k no fim da execução do seguinte trecho de código em linguagem C?
k = 0;
for (i=1; i <= n; i++)
for(j = i; j <= n; j++)
k = k + 1;
. . .
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa Correta: D - n(n+1)/2
Vamos explorar esta questão, que aborda um trecho de código em linguagem C. Esse tema é importante em concursos, pois avalia a capacidade do candidato de entender estrutura de laços (loops) e a manipulação de variáveis em iterações aninhadas.
O código dado é:
k = 0;
for (i = 1; i <= n; i++)
for (j = i; j <= n; j++)
k = k + 1;
Para resolver a questão, precisamos analisar quantas vezes o código k = k + 1;
é executado.
O for
mais externo inicia com i
variando de 1 até n
. Para cada valor de i
, o for
mais interno vai de j = i
até n
. Portanto, a variável k
será incrementada um número de vezes que depende dos valores percorridos pelos dois laços.
Vamos entender melhor:
- Para
i = 1
,j
varia de 1 an
(executan
vezes) - Para
i = 2
,j
varia de 2 an
(executan-1
vezes) - Para
i = 3
,j
varia de 3 an
(executan-2
vezes) - ...
- Para
i = n
,j
varia den
atén
(executa 1 vez)
O total de execuções de k = k + 1
é a soma de todas essas iterações:
n + (n-1) + (n-2) + ... + 1
Esta é a soma dos primeiros n
números inteiros, que pode ser calculada pela fórmula:
S = n(n + 1)/2
Portanto, ao final do código, o valor de k
será n(n + 1)/2, confirmando que a alternativa correta é a alternativa D.
Agora, vamos analisar as alternativas incorretas:
- A - n−1: Esta alternativa está incorreta porque subestima a quantidade de iterações. A função cresce mais rapidamente que linear.
- B - n: Também subestima, pois não leva em conta o somatório das iterações do laço interno.
- C - (n2−n)/2: Embora se aproxime da forma correta, esta alternativa calcula a quantidade de iterações de forma errada.
- E - n3: Superestima a quantidade de iterações, resultando em um número muito maior que o real.
Com isso, fica claro que a compreensão dos laços aninhados e das fórmulas de somatório é crucial para resolver questões desse tipo. Continue praticando para melhorar sua habilidade em análise de código!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo