Um probleminha Ad-hoc para vocês agora! O título deste problema é "Top N", e trabalha estruturas condicionais. Olhe na sequência os dados do exercício e a minha proposta de solução em C e C++!
Plataforma: URI (BEECROWD)
Problema: 1943
Enunciado:
Recentemente aconteceu a fase regional da Maratona de Programação da SBC, onde mais de 600 times participaram em mais de 40 sedes diferentes pelo Brasil. Seu amigo participou da competição, e quando questionado sobre sua colocação lhe disse: “Ficamos no top 10”.
Você ficou feliz pelo seu amigo, mas connão pode deixar de ficar curioso sobre qual foi sua real colocação. “Top 10” poderia indicar qualquer posição entre primeiro e décimo colocado, porém se ele estivesse em primeiro provavelmente teria dito “Top 1”, se estivesse em segundo ou terceiro provavelmente teria dito “Top 3”, e se estivesse em quarto ou quinto provavelmente teria dito “Top 5”. Logo, sua real colocação foi entre sexto e décimo, pois as pessoas geralmente se colocam na menor categoria a qual pertencem.
Você reuniu então todas as categorias de colocações que as pessoas mais usam: 1, 3, 5, 10, 25, 50 e 100. Dada uma colocação K, diga o número da menor categoria que esta colocação pertence.
Linguagens: C e C++
Solução:
Código em C:
Basicamente testa o valor de k. Para cada teste imprime o valor respectivo. Poderia, em vez de imprimir direto, salvar o valor em uma variável e no fim só imprimir esta variável. Fica a seu critério.
Coloquei também a variável k como sendo short unsigned int porque o valor recebido será pequeno e não teremos valores negativos.
#include <stdio.h> int main() { short unsigned int k; scanf("%hu", &k); printf("Top "); if (k == 1) printf("1"); else if (k <= 3) printf("3"); else if (k <= 5) printf("5"); else if (k <= 10) printf("10"); else if (k <= 25) printf("25"); else if (k <= 50) printf("50"); else printf("100"); printf("\n"); return 0; }
#include <iostream> using namespace std; int main() { short unsigned int k; cin >> k; cout << "Top "; if (k == 1) cout << k; else if (k <= 3) cout << "3"; else if (k <= 5) cout << "5"; else if (k <= 10) cout << "10"; else if (k <= 25) cout << "25"; else if (k <= 50) cout << "50"; else cout << "100"; cout << endl; return 0; }
Nenhum comentário:
Postar um comentário