Mais Cavalos! Esse é o nome do exercício resolvido e cuja resposta apresento aqui. Espero que consigam compreender a resposta!
Plataforma: URI (BEECROWD)
Problema: 2808
Linguagens: C e C++
Solução:
Esse exercício eu fiz de algumas formas diferentes, mas todas elas utilizam o mesmo raciocínio. Basta ler os quatro valores e testar a diferença absoluta entre as linhas e as colunas, verificando as condições:
- abs (col - colDest) = 2 E abs(line - lineDest) = 1;
- OU
- abs (col - colDest) = 1 E abs(line - lineDest) = 2;
Código em C:
Essa solução aqui nem é a melhor, foi só pra mostrar um jeito um pouco diferente de resolver. Podia ter eliminado um IF e uma variável. E você, como resolveu esse exercício em C?
#include <stdio.h> #include <math.h> int main() { int line, lineDest, flag = 1; char col, colDest; scanf("%c%i %c%i", &col, &line, &colDest, &lineDest); if ((abs(col-colDest) == 2 && abs(line-lineDest) == 1) || (abs(col-colDest) == 1 && abs(line-lineDest) == 2)) flag = 0; if (flag) printf("IN"); printf("VALIDO\n"); return 0; }
Código em C++:
Solução com lógica semelhante a que apresentei em C, mas sem o uso da flag.
#include <iostream> #include <cmath> using namespace std; int main() { int line, lineDest; char col, colDest; cin >> col >> line >> colDest >> lineDest; if ((abs(col-colDest) == 2 && abs(line-lineDest) == 1) || (abs(col-colDest) == 1 && abs(line-lineDest) == 2)) cout << "VALIDO" << endl; else cout << "INVALIDO" << endl; return 0; }
Nenhum comentário:
Postar um comentário