Pular para o conteúdo principal

Questão de TI - Desenvolvimento de Sistemas — Definição de Algoritmos e Estruturas de Controle — CESGRANRIO 2022

TI - Desenvolvimento de SistemasDefinição de Algoritmos e Estruturas de Controle
Código
cg056603
Banca
CESGRANRIO
Órgão
BASA
Ano
2022
Cargo
Tec Cien ( )
Em linguagens de programação como Java, onde existem estruturas de repetição, a recursão pode ser muitas vezes substituída pela repetição, com ganhos de desempenho.   Considere a seguinte função recursiva segredo, em Java:   public static int segredo(int a) {         if (a<2) {                  return 0;         } else {                return segredo(a-2)+1;        } }   Que fragmento de código, em Java, contendo uma estrutura de repetição, é adequado para substituí-la?
  1. Apublic static                 int alternativaA(int a) { int s = 0;                 for (int i=a;i>2;i--) {                            s++;                 }                 return s;     }
  2. Bpublic static int alternativaB(int a) {                   int s = 0;                   for (int i=a;i<2 && i>0;i--) {                              s++;                   }                  return s;        }
  3. Cpublic static int alternativaC(int a) {                  int s = 0;                  while (a>=2) {                               a-=2;                                s++;                  }                  return s;       }
  4. Dpublic static int alternativaD(int a) {                   int s = 0;                   do {                             a-=2;                              s++;                  } while (a>0 && a<=2);                 return s;      }
  5. Epublic static int alternativaE(int a) {                   int s = 0;                   do {                               a-=2;                               s++;                   } while (a>0 && a<2);                   return s;       }
Revelar gabarito e comentário

GabaritoC — public static int alternativaC(int a) {                  int s = 0;                  while (a>=2) {                               a-=2;                                s++;                  }                  return s;       }

Link permanente: /questoes/cg056603