Ir para conteúdo

POWERED BY:

Arquivado

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

wosh1ngton

[Resolvido] Capicua

Recommended Posts

Pessoal do com um exercicio da faculdade aqui pra fazer,

referente a capicua, funciona da seguinte forma

existem numero de 4 digitos entre 1000 e 9999, que obedecem

a seguinte caracteristica se dividirmos o numero em 2 numeros de

2 digitos, se somarmos esses dois novos numeros gerados,

gerando um terceiro numero do qual obtemos o quadrado

esse terceiro numero é igual ao numero de 4 digitos inicial

Ex.: 2025

DIVIDINDO

20 / 25

20 + 25 = 45

45² = 2025

 

gostaria que me ajudassem a bolar um programa que resolvesse o impasse =/

grato desde já, segue o código que já desenvolvi

#include <stdio.h>
#include <conio.c>
#include <conio.h>

main(){
int num, aux, x1, x2, x3, x4, x5, x6, x7;
printf("Digite um numero de 4 digitos: ");
scanf("%d",&num);
aux = num;
//exemplo numero 1258

x1=aux%10; //x1->125
x2=aux/10; //x2 -> 125
x3=x2%10; //x3 -> 12
x4=x2/10; //x4 -> 1
x5=x4%10; //x5 -> 1
x6=x4/10;

x7=((x1*10+x3)*10+x5)*10+x6;

if (x7==num){
printf("\nE um Capicua"); }
else {
printf("\nNao e Capicua!");
			}
			system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Separe os números, pode ser feito assim:

 

int x1 = num/100;
int x2 = num - (x1*100);
printf("x1: %d, x2: %d\n",x1, x2);
system("pause");

Após dividir fica simples.

 

Só precisa comparar os resultados: (x1+x2)*(x1+x2) é igual a num?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou assim:

int x1 = num/100;
int x2 = num%100; // mudei aqui
Se quisesse os "a" primeiros e os "b" últimos:

int x1 = num/pow(10,a);
int x2 = num%pow(10,b);
printf("x1: %d, x2: %d\n",x1, x2);
Depois é só comparar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Muito Obrigado, vcs são demais.

sempre que recorro a vcs, vcs tem a solução, valeu ae.

deu certim o programa.

#include <stdio.h>
#include <conio.c>
#include <conio.h>

main(){
int num, x1, x2;
printf("Digite um numero de 4 digitos: ");
scanf("%d",&num);



x1 = num/100; //resulta 20

x2 = num - (x1*100); //resulta 25

if ((x1+x2)*(x1+x2) == num){
printf("\nE um Capicua"); }
else {
printf("\nNao e Capicua!");
printf("\n");
			}
			system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhando este post me deu uma uma curiosidade de saber quais os numeros que sao Capicua

 

Entao fiz um codigo equivalente em VBScript para ver

 

O resultado é que apenas os numeros 2025, 3025 e 9801 satisfazem os requisitos num universo de 9000 possibilidades de numeros de 4 algarismos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Separe os números, pode ser feito assim:

 

int x1 = num/100;
 int x2 = num - (x1*100);
 printf("x1: %d, x2: %d\n",x1, x2);
 system("pause");

Após dividir fica simples.

 

Só precisa comparar os resultados: (x1+x2)*(x1+x2) é igual a num?

Cara, como você chegou a essa "fórmula" pra dividir o número em dois?? Usou que linha de pensamento?? Ou já tinha visto isso em algum lugar antes??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, como você chegou a essa "fórmula" pra dividir o número em dois?? Usou que linha de pensamento?? Ou já tinha visto isso em algum lugar antes??

Cara, é só matemática mesmo.

De tanto fazer exercício e cálculo voce se acostuma a resolver esses problemas.

 

Olhando este post me deu uma uma curiosidade de saber quais os numeros que sao Capicua

 

Entao fiz um codigo equivalente em VBScript para ver

 

O resultado é que apenas os numeros 2025, 3025 e 9801 satisfazem os requisitos num universo de 9000 possibilidades de numeros de 4 algarismos

Pensei que tinha mais números com essa características.

:mellow:

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tambem achava que tinham mas sao so 3 mesmo

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.