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,jvaria de 1 an(executanvezes) - Para
i = 2,jvaria de 2 an(executan-1vezes) - Para
i = 3,jvaria de 3 an(executan-2vezes) - ...
- Para
i = n,jvaria denaté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
Comentários
Veja os comentários dos nossos alunos
Sempre que tiver somatório de 1 a n, pensa direto em n(n+1)2
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo