Ir para conteúdo
Fórum Script Brasil
  • 0

Números Palíndromos


viciado

Pergunta

Fazer um programa qua calcule os números palíndromos de 0 a 5000. O programa deverá solicitar so usuário uma das seguintes alternativas:

a) Calcular números palíndromos

B) Terminar

Obs: Número Palíndromo é aquele que tem igual valor se lido da esquerda para direita ou vice-versa. Ex. 0,1, ... 9, 11, 22, ..., 99, 101, 111, 121, ...

Tentei fazer as seguintes funções, mais como retorno um vetor e como posso obter os números palíndromos acima de 10

int preenche(){
    int i,j;
    int m[5000];
    for(i=0,j=0;i<5000;i++){
                            m[i] = j;
                            j++;
                            }
    return m;
}
void calcular(int m[5000]){
    int i, count = 0;
    for(i=0;i<5000;i++){
                        if(m[i] < 10)
                              count++;
                        else
                              if(

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

os numeros vao tar em string ou em inteiro??

se tiver em string, é so inverter a string e comparar se não for igual.

se tiver em numero, é o mesmo, so q da mais trabalho pra separar os digitos e inverter.

como posso obter os números palíndromos acima de 10

mas td o q você tem q fazer é ir dividindo (divisao inteira) o valor por 10 ate chegar em 0. e você guarda o resto da divisao numa variavel e vai multiplicando ela por 10 a cada passagem do for.

exemplo, o numero 123 esta na variavel x:

1ª passagem do for:

123 / 10 = 12 com resto 3.

ai você guarda o 3 na variavel y e o 12 na x.

2ª passagem do for:

12 / 10 = 1 com resto 2.

você multiplica y por 10 -> 3 * 10 = 30.

e soma com o resto, vai dar q y = 32. e x fica valendo 1.

3ª passagem do for:

1 / 10 = 0 com resto 1

você multiplica y por 10 -> 32 * 10 = 320.

e soma com o resto, vai dar q y = 321. e x fica valendo 0, o q vai fazer o for terminar.

ai você achou o numero 123 invertido (321). ai você compara um com o outro, se for igual é palindromo.

mais como retorno um vetor

se não me engando, o vetor é passado por referencia não?? ai se você altera o vetor dentro da funcao, ele fica alterado fora.

ou você declara a funcao como *int.

EDITADO:

mas porque você precisa de uma funcao q retorne o array??

não é simplesmente ira calculando e mostrando?? ele te pediu q fosse uma funcao??

pra mim você podia faze so a funcao q calcula o palindromo (retornando bool), e se fosse true, você mostrava. não precisava nem declara o array.

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

sempre q der true, some 1 numa variavel ue.

alem de q não precisa de array, so vai atrapalhar. olha essa parte do seu codigo:

if(m[i] < 10)
    count++;[/code]

m[i] vai ter exatamente o mesmo valor de i. então pra q pega do array se você pode pegar direto do i??

Link para o comentário
Compartilhar em outros sites

  • 0

aqui ta toda a explicacao... ficou muito complicado pra entender assim??

crie uma variavel pro resto e otra pro resultado. pra calcular o resto use o operador %

ai faca um while (valor > 0) e dentro do while, va dividindo o valor digitado por 10 e fazendo as contas q falei abaixo:

mas td o q você tem q fazer é ir dividindo (divisao inteira) o valor por 10 ate chegar em 0. e você guarda o resto da divisao numa variavel e vai multiplicando ela por 10 a cada passagem do for.

exemplo, o numero 123 esta na variavel x:

1ª passagem do for:

123 / 10 = 12 com resto 3.

ai você guarda o 3 na variavel y e o 12 na x.

2ª passagem do for:

12 / 10 = 1 com resto 2.

você multiplica y por 10 -> 3 * 10 = 30.

e soma com o resto, vai dar q y = 32. e x fica valendo 1.

3ª passagem do for:

1 / 10 = 0 com resto 1

você multiplica y por 10 -> 32 * 10 = 320.

e soma com o resto, vai dar q y = 321. e x fica valendo 0, o q vai fazer o for terminar.

ai você achou o numero 123 invertido (321). ai você compara um com o outro, se for igual é palindromo.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...