Ako bi se na prvo polje šahovske table stavilo jedno zrno, a na svako sljedeće polje dvostruko više nego na prethodno, izračunati koliko bi se zrna nalazilo na posljednjem (64-om) polju, odnosno koliko bi ukupno zrna trebalo da bude na tabli.
Zadatak sa pojavom prekoracenja ( u C-u)
Zaključano
Zakačeno
izmenjeno 1 put, poslednji put X Files 06.10.2007. u 09:05
Izmene poruke
- X Files06.10.2007. u 09:05zapis iz teksta poruke
Ne razumem zasto si dobio prekoracenje.
Stavi double.
U sustini problem nije uopste tesak. ovo je vise matemetika nego programiranje.
Rezultat je 2^65 = 36893488147419103000.
Evo ti kod.
Mozda nije bas sve formatirano ali radi.
Lima
EDIT: X Files : Molim Vas da zbog preglednosti, kod upisujete između tag-ova predviđenih za to:
[code]
int main ( int argc, char *argv[] )
{
// ...
return 0;
}
[/code]
Stavi double.
U sustini problem nije uopste tesak. ovo je vise matemetika nego programiranje.
Rezultat je 2^65 = 36893488147419103000.
Evo ti kod.
Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
double z=0.0,pom;
int i;
printf("CLAN\t\t\t VREDNOST\n");
for(i=0;i<=64;i++)
{
pom=(double)pow(2,i) ;
printf("%f\t\t%f\n",pom,z);
z=z+pom;
}
printf("Z=%f\n",z);
system("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
double z=0.0,pom;
int i;
printf("CLAN\t\t\t VREDNOST\n");
for(i=0;i<=64;i++)
{
pom=(double)pow(2,i) ;
printf("%f\t\t%f\n",pom,z);
z=z+pom;
}
printf("Z=%f\n",z);
system("PAUSE");
return 0;
}
Mozda nije bas sve formatirano ali radi.
Lima
EDIT: X Files : Molim Vas da zbog preglednosti, kod upisujete između tag-ova predviđenih za to:
[code]
int main ( int argc, char *argv[] )
{
// ...
return 0;
}
[/code]
Potpis
LimaSoft ®
@limasoft
Mislim da nisi dobro sračunao. Zar nije:
• trenutno polje na tabli: 2(n-1) = (n=64; polje64=9223372036854775808)
• ukupno: 264-1 = 18446744073709551615
Svakako mora biti NEPARAN broj zbog prve jedinice :)
(ili se još nisam razbudio)
Mislim da nisi dobro sračunao. Zar nije:
• trenutno polje na tabli: 2(n-1) = (n=64; polje64=9223372036854775808)
• ukupno: 264-1 = 18446744073709551615
Svakako mora biti NEPARAN broj zbog prve jedinice :)
(ili se još nisam razbudio)
Da tacno u pravu si.
rezultat je 18446744073709551615 zrna na tabli.
bio sam previse umoran i slucajno sam video tu temu. Znam da ide i posebna prica o nekom kralju koji je prosjaku olako obecao ovoliku kolicunu psenice da ga nauci da igra sah. Tako nekako ide prica...
rezultat je 18446744073709551615 zrna na tabli.
bio sam previse umoran i slucajno sam video tu temu. Znam da ide i posebna prica o nekom kralju koji je prosjaku olako obecao ovoliku kolicunu psenice da ga nauci da igra sah. Tako nekako ide prica...
Potpis
LimaSoft ®
Evo uradio sam bez upotrebe funkcija iz math.h
ima jos varijanta bez upotrebe DOULBE, nesto preko nizova.
Code:
#include <stdio.h>
#include <stdlib.h>
main()
{
int i;
double suma=0, pom=1, baza=2, pom2=2, korak=1;
for(i=1;i<=64;i++)
{
printf("Polje %d. = %f\n", i,pom);
suma+=pom;
pom=baza*korak;
korak*=pom2;
}
printf("\nZbir zrna je: %f\n\n", suma);
system("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
main()
{
int i;
double suma=0, pom=1, baza=2, pom2=2, korak=1;
for(i=1;i<=64;i++)
{
printf("Polje %d. = %f\n", i,pom);
suma+=pom;
pom=baza*korak;
korak*=pom2;
}
printf("\nZbir zrna je: %f\n\n", suma);
system("PAUSE");
return 0;
}
ima jos varijanta bez upotrebe DOULBE, nesto preko nizova.