Questão FC373257
Um Analista fez um programa Java que permite ao usuário informar o número de anos de serviço de um funcionário e, em seguida, calcula a quantidade total de dias de férias acumulada
Linguagens de Programação
FCC · 2023
Um Analista fez um programa Java que permite ao usuário informar o número de anos de serviço de um funcionário e, em seguida, calcula a quantidade total de dias de férias acumuladas com base nas regras estabelecidas: 15 dias de férias para funcionários com até 5 anos de serviço e 15 dias adicionais para cada novo período de até 5 anos.
import java.util.Scanner;
public class Férias {
public static void mainiString[] args) {
Scanner scanner = new Scanner (System. in);
System.out.print ("Informe o número de anos de serviço: ");
int anosServico = scanner.nextInt();
int diasFerias = calcular (anosServico) ;
System.out.println("Dias de férias acumuladas: " + diasFerias);
}
public static int calcular (int anosServico) {
if (anosServico <= 5) {
return 15;
} else {
}
}
}
Para que o programa execute corretamente na forma descrita, no interior do bloco =1se do método calcular deve ser colocada a instrução
- return calcular (anosServico - 5);
- return 15 + calcular (anosServico - 15);
- return 15 + (anosServico - 5);
- return 15 + calcular (anosServico - 5);
- return anosServico + 15;
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
return 15 + calcular(anosServico - 5); aplica recursão: soma 15 dias para o primeiro período de até 5 anos e delega ao mesmo método o cálculo dos períodos restantes.
O método calcular tem um caso base (quando anosServico ≤ 5 retorna 15). A cada chamada recursiva reduzimos anosServico em 5, garantindo que a sequência termine.
Exemplo: para 12 anos => \(15 + calcular(7) = 15 + (15 + calcular(2)) = 45\) dias.
Matematicamente, implementa \(15 \times \lceil anosServico/5 \rceil\), ou seja, conta cada período iniciado de até 5 anos como 15 dias. Assim a instrução preenche corretamente a regra dada.
Conteúdo do catálogo FC Concursos · Atualizado em