1. Faça um programa que receba dois vetores com N números. Verifique se esse vetor tem um número palíndromo (um número que escrito na ordem inversa é igual).

Passo 1

O problema pede um programa em que lemos dois vetores, cada um com N números inteiros, e verificamos se em qualquer um dos vetores existe pelo menos um número palíndromo – ou seja, um número que permanece igual quando seus dígitos são invertidos. O conteúdo principal envolve:
  • Laços de repetição para percorrer vetores;
  • Função para inverter um número inteiro e comparar com o original;
  • Uso de operações aritméticas inteiras ( bmod, divisão inteira).

Passo 2

Primeiro vamos criar uma função que testa se um número inteiro não-negativo n é palíndromo. A ideia é: guardar o valor original, construir o número invertido dígito a dígito, e ao final comparar invertido com o original.
Função ehPalindromo(n):
original := n
invertido := 0
enquanto n > 0 façaç
dígito := n bmod 10í
invertido := invertido cdot 10 + dígitoí
n := n div 10
fim enquanto
retornar (invertido = original)

Passo 3

No bloco principal do programa, lemos o valor de , os dois vetores e , e então percorremos cada vetor aplicando . Se em qualquer posição tivermos verdadeiro, marcamos que existe palíndromo naquele vetor.
ler N  
para i de \(0\) até N-\(1\) faça  
    ler A[i]  
fim para  
para i de \(0\) até N-\(1\) faça  
    ler B[i]  
fim para  

temPalA :\(=\) falso  
para i de \(0\) até N-\(1\) faça  
    se ehPalindromo(A[i]) então  
        temPalA :\(=\) verdadeiro  
        interromper laço  
    fim se  
fim para  

temPalB :\(=\) falso  
para i de \(0\) até N-\(1\) faça  
    se ehPalindromo(B[i]) então  
        temPalB :\(=\) verdadeiro  
        interromper laço  
    fim se  
fim para

Passo 4

Com os flags temPalA e temPalB definidos, basta exibir o resultado para cada vetor. Podemos, por exemplo, imprimir mensagens como “Vetor A tem palíndromo” ou “Vetor A não tem palíndromo”, e o mesmo para o vetor B.

Resposta

Veja abaixo um esqueleto completo em pseudocódigo:
<=r N
para i de 0 até N-1 façaéç
<=r A[i]
fim para
para i de 0 até N-1 façaéç
<=r B[i]
fim para
função ehPalindromo(n):
original := n
invertido := 0
enquanto n > 0 façaç
dígito := n bmod 10í
invertido := invertido cdot 10 + dígitoí
n := n div 10
fim enquanto
retornar (invertido = original)
fim funçãoçã
temPalA := falso
para i de 0 até N-1 façaéç
se ehPalindromo(A[i]) entãoã
temPalA := verdadeiro
interromper laçoç
fim se
fim para
temPalB := falso
para i de 0 até N-1 façaéç
se ehPalindromo(B[i]) entãoã
temPalB := verdadeiro
interromper laçoç
fim se
fim para
se temPalA entãoã
imprimir “Vetor A tem palíndromo.”
senãoã
imprimir “Vetor A não tem palíndromo.”
fim se
se temPalB entãoã
imprimir “Vetor B tem palíndromo.”
senãoã
imprimir “Vetor B não tem palíndromo.”
fim se

Exercícios relacionados