Zadatak iz C-a sa poslednjeg roka...

Započeo maxogm, 17.04.2008, 00:19

prethodna tema - sledeća tema

maxogm

17.04.2008, 00:19 Poslednja Izmena: 17.04.2008, 00:22 od maxogm
Na poslednjem roku iz programskih jezika je bio sledeci zadatak koga niko nije ni pokusao da uradi.

Ako je broj M1 dobijen od broja M zapisom njegovih cifara u inverznom poredku, napisati program kojim se štampaju svi parovi trocifrenih brojeva (A,B) koji imaju svojstvo: ako je A*B=C, to je A1*B1=C1. Na primer:
        312*221=68952
        213*122=25986


Rešenje:


#include<stdio.h>

long inverzanbroj(long broj)
{
  long s=0;
  while(broj) {
                 s = s * 10 + broj%10;
                 broj=broj/10;
                 }
   return s;
}

int main(int argc, char *argv[])
{
long a,b,c;
for(a=100;a<=999;a++)
    for(b=a;b<=999;b++) {
c=a*b;
if (inverzanbroj(a)*inverzanbroj(b) == inverzanbroj(c))
printf("%ld %ld\n",a,b);
  }
   
return 0;
}

maxogm

U izvinite, nije baš da niko nije pokušao da uradi. Pokušao je Marinko...