br2n0 0 Denunciar post Postado Setembro 24, 2012 Ola, tenho que escreva todos os pares de números de dois algorismos que apresentam a seguinte propriedade: o produto dos números não se altera se os dígitos são invertidos. Ex.: 93x13=39x31=1209, 69x32=96x23=2208. esse é meu código: #include <stdio.h> #include <stdlib.h> main() { int a,b,c,d,f,g; for(a=1;a!=9;a++) { for(b=1;b!=9;b++); { for(c=1;c!=9;c++) { for(d=1;d!=9;d++) { f= (10*a+B)*(10*c+d); g= (10*b+a)*(10*d+c); if(f==g) printf("%i e %i\n",(10*a+B),(10*c+d)); } } } } system("pause"); } o problema é q não esta mostrando todos os pares de números gostaria que min ajudassem a resolver esse bug ou ate dar uma dica de como fazer. Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Setembro 27, 2012 Preste atenção nas condições dos loops. Já de cara o par (93,13) não vai executar, porque a == 9. #include <stdio.h> #include <math.h> int main(void) { int a,b,c,d; int numero_1, numero_2; int numero_1_inv, numero_2_inv; for(a=1; a<10; a++) { for(b=0; b<10; b++) { for(c=1; c<10; c++) { for(d=0; d<10; d++) { numero_1 = a*10 + b; numero_1_inv = b*10 + a; numero_2 = c*10 + d; numero_2_inv = d*10 + c; // Verifica quantos dígitos o número tem. // Filtra casos como a=1 e b=0 (numero_1_inv = 1). if ((int)ceil(log10(numero_1_inv)) == 2 && (int)ceil(log10(numero_2_inv)) == 2) { if (numero_1 * numero_2 == numero_1_inv * numero_2_inv) printf("(%d,%d)\n",numero_1,numero_2); } } } } } return 0; } Isso atende? Compartilhar este post Link para o post Compartilhar em outros sites