Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

_Isis_

[Desafio] Palíndromos

Recommended Posts

Já que o Kandrade não dá as caras...

 

 

Um inteiro positivo é dito palíndromo se sua representação no sistema decimal é a mesma quando lida da esquerda p/ a direita e da direita p/ a esquerda. Para um dado inteiro positivo K com não mais do que 1000000 dígitos, escreva o valor do menor palíndromo maior que K. Os números são sempre impressos sem o zero à esquerda.

 

 

Entrada:

 

A primeira linha contém o inteiro t, o número de casos de teste. Inteiros K são dados nas t linhas seguintes.

 

 

Saída:

 

Para cada K, mostre o menor palíndromo maior do que K.

 

 

http://www.spoj.pl/problems/PALIN/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dúvida:

 

Dado o número Binário

 

101

Sendo inteiro

Sendo positivo

Sendo idêntido tanto da direita para esquerda quanto esquerda para direita

 

pode ser dito como um palíndromo ?

 

Ou estes atributos de inteiro, postivo etc; Devem ser tomados somente após o Numero Binário ser convertido para alfa-numérico ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alfa-numérico é um conjunto de letras, símbolos de pontuação e números.

 

E o exercício não menciona em parte alguma conversão entre bases. Não faça o que não existe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra pergunta.

 

com os numeros :

 

1.) 123321

2.)01566510

 

 

Quais seriam os palíndromos deles?

 

1.) = 2332, 123321

 

2.) = 5665, 156651

~

?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, o que você não entendeu da questão?

Não é p/ ficar procurando palíndromos dentro de um inteiro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

#!/usr/bin/python

casos_de_teste = input()
limite_inferior = []

for i in range(0, casos_de_teste):
limite_inferior.append(input())

print "\n"
for i in limite_inferior:
j = i+1
while True:
	reverso = list(str(j))
	reverso.reverse()
	if reverso == list(str(j)):
		print j
		break
	j+=1

 

 

 

#include <stdio.h>
#include <math.h>
#include <string.h>
typedef unsigned long tipo_numero;

tipo_numero palindromo(tipo_numero inicio)  {
double digitos;		
tipo_numero proximo = inicio+1;
tipo_numero dividendo, quociente;
while(1) {

	dividendo = proximo;
	digitos = log10(dividendo);
	if (ceil(digitos) != floor(digitos))
		digitos = ceil(digitos);

	if (digitos == 1)
		return dividendo;

	while(1) {
		quociente = dividendo/(tipo_numero)pow(10,digitos-1);
		if (dividendo % 10 == quociente) {
			dividendo = (dividendo % (tipo_numero)pow(10,digitos-1)) / 10;
			digitos-=2;
			if (!digitos || digitos == 1)
				return proximo;
		} else {
			proximo++;
			break;
		}
	};
};
}


int main() {
int casos_de_teste;
do { 
	scanf("%d", &casos_de_teste);
} while (casos_de_teste < 1);

tipo_numero limite_inferior[casos_de_teste];
int loop;

memset(limite_inferior,0,casos_de_teste*sizeof(tipo_numero));
for(loop = 0; loop < casos_de_teste; loop++)
	scanf("%u", &limite_inferior[loop]);

for(loop = 0; loop < casos_de_teste; loop++)
	printf("%u\n", palindromo(limite_inferior[loop]));

return 0;
}

 

(Ainda com limitações de intervalo)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi bem o exercício mas se for só para saber quem é palíndormo fiz uma solução em php, se for útil para alguém:

<?php 
$string="NATAN"; 
$total=strlen($string);  
  for ($i=0;$i<=$total;$i++){ $A=$A.$string[$i]; } 
  for($j=$total;$j>=0;$j--){ $B=$B.$string[$j]; } 

echo $A." = ".$B." ?";
echo "<br />";
if ($A==$B){ echo "sao Palíndromos :)";} else{ echo "não são Palíndromos :(";}  
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sei que eu não devia estar fazendo isso, o(a) Isis que me perdoe (duas vezes até), mas é pra você Daniel.

 

Carta+M%C3%A1gica+O+t%C3%B3pico+que+Renasce.JPG

Viu como o tópico é antigo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.