Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESGRANRIO 2022

ProgramaçãoLinguagens de programação
Código
cg016669
Banca
CESGRANRIO
Órgão
Banco da Amazônia
Ano
2022
Nível
Superior
Cargo
Técnico Científico - Tecnologia da Informação
Uma função, chamada converte, tem por objetivo converter um número inteiro na base decimal (d), recebido como parâmetro, em um número inteiro na base binária (b), isto é, um número que seja formado apenas pelos algarismos 0 e 1, como nos exemplos abaixo.Exemplos:converte(7) = 111 converte(12) = 1100 converte(16) = 10000Admita que o inteiro (d), recebido como parâmetro, é tal que d>=0 e d<=1024.Qual função executa essa conversão corretamente?
  1. Astatic long converte(int dec) {if(dec == 0)return dec;long r=converte(dec/2);return dec % 2 + r * 10;}
  2. Bstatic long converte(int dec) { long bin=0; while(dec > 0) { int r= dec % 2; dec=dec / 2; bin+=r << 2; } return bin; }
  3. Cstatic long converte(int dec) { if(dec > 0) return dec; long r=converte(dec%2); return dec / 2 + r * 10; }
  4. Dstatic long converte(int dec) { long bin=0,fat=1; do { int r=dec % 2; dec=dec/2; bin+=r * fat; fat*=10; } while(dec >= 0); return bin; }
  5. Estatic long converte(int dec) { long bin=0; for(long fat=1; dec > 0; fat*=10) { int r=dec % 2; dec=dec / 2; bin+=r * fat; } return bin; }
Revelar gabarito e comentário

GabaritoA — static long converte(int dec) { if(dec == 0) return dec; long r=converte(dec/2); return dec % 2 + r * 10; }

Link permanente: /questoes/cg016669