Resolvi aqui mais um problema de matemática para vocês! O problema "Estacas"!
Este problema precisa do cálculo do MDC para obter a solução, ao menos eu fiz assim. E você, como fez este exercício?
Plataforma: URI (BEECROWD)
Problema: 1630
Enunciado:
Marcos trabalha em uma empreiteira, sua tarefa é cercar com estacas os terrenos onde serão construidos prédios. Existem duas restrições para a distribuição destas estacas, elas devem ser colocadas de tal forma que a distância entre duas estacas seja sempre igual, e a segunda restrição é que Marcos deve usar o menor número possível de estacas. Marcos é seu amigo e pediu para que você desenvolva um programa para ajudá-lo.
Linguagens: C e C++
Solução:
Basta ler os valores de x e y e imprimir (2x + 2y) / mdc(x, y).
Eu implementei a minha função mdc para isso, tornando o código mais modularizado e consequentemente mais legível também.
Código em C:
#include <stdio.h> int mdc(int v1, int v2) { int resto; do { resto = v1 % v2; v1 = v2; v2 = resto; } while (resto); return v1; } int main() { int x, y; while (scanf("%d %d", &x, &y) != EOF) { printf("%d\n", (x + x + y + y) / mdc(x, y)); } return 0; }
#include <iostream> int mdc(int v1, int v2) { int resto; do { resto = v1 % v2; v1 = v2; v2 = resto; } while (resto); return v1; } int main() { int x, y; while (std::cin >> x >> y) std::cout << (x + x + y + y) / mdc(x, y) << std::endl; return 0; }