Buscar

Como fazer um algoritmo com com 5 ou 6 números, ler, e depois dizer se palindromo ou não. (Usando Div e Mod)

💡 2 Respostas

User badge image

Geovana Glerian

RESOLUÇÃO EM C


#include "stdio.h"
#include "stdlib.h"
#include "string.h"

void main (){


char cadeia[100], nova[100];
int cmp;
printf("\nDigite uma string: ");
gets(cadeia);
strcpy(nova,cadeia);
strrev(cadeia);                // FUNÇÃO QUE INVERTE CADEIA DE CARACTER
cmp = strcmp(cadeia, nova);
if ( cmp == 0){
printf("A palavra constitui um palindromo.\n");
} else{
printf("A palavra não constitui um palindromo.\n");
}system("pause");
}

0
Dislike0
User badge image

RD Resoluções

 

Para a resolução deste problema usamos os operadores Div (Retorna valor da divisão) e Mod (Retorna o resto da divisão) e vamos operando com o divisor de valor 10, assim pegamos o ultimo digito do numero digitado, logo após nós aplicamos a operação de Mod e guardamos o valor obtido. O valor obtido (lembrando que é o resto da divisão) é soma a multiplicação por 10 (que foi nosso divisor) a variável invertido (que vai guardar nosso número invertido) a cada digito obtido.


Para condição de parada, a cada digito processado aplicamos a operação de Div (que retorna o valor da divisão) a fim de obtermos o valor zero, pois assim sabemos que não há mais dígitos para verificar.


Por fim comparamos o valor inicial com o resultado obtido desta operação sucessiva de Mod e Div, se os mesmos forem iguais, temos um número palíndromo.


programa { 

funcao inicio () { 

//Declaração de variaveis

/*

 * digitado -> esta variável é para capturar o valor digitado

 * num -> é uma variável para copiar o valor digitado e não mudar o valor capturado 

 * invertido -> recebe o valor das operações de div e mod para posterior verificação

 * dígito -> armazena o resto da divisão pela operação de mod

*/

inteiro digitado, num, invertido, digito

escreva("Digite um número inteiro: ")

//Captura o valor digitado

leia(digitado)

//Copio para a variável de operação

num = digitado

//Inicializo a variável invertido

invertido = 0

//Rodo um laço até o num chegar a 0 (zero)

enquanto (num != 0) {

/*

 * Pego o resto da divisão por 10

 * utilizando o operador MOD (%)

*/

digito = num % 10

/*

 * multiplico o que ja foi invertido por 10 e adiciono o resto

 * ao final esse será o valor invertido

*/

invertido = (invertido * 10) + digito 

/*

 * Divido por 10 o valor restante para eliminar o dígito calculado anteriormente 

 * Também vai ser minha variável de controle, quando este zerar, acabou os 

 * dígitos

*/

num = num / 10

}

//Comparo o digitado com o invertido

se (digitado == invertido) {

//Se forem iguais digo que é palíndromo

escreva("Este é um número palíndromo.")

} senao {

//Senão digo que não é palíndromo

escreva("Este não é um número palíndromo.")

}

}

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais