Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 3.456 pregleda

Najnovija ↓

Zadatak sa pojavom prekoracenja ( u C-u) 05.10.2007. u 23:58 · pre 232 meseca #1
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.
Re: Zadatak sa pojavom prekoracenja ( u C-u) 06.10.2007. u 00:56 · pre 232 meseca
izmenjeno 1 put, poslednji put X Files 06.10.2007. u 09:05
  1. X Files06.10.2007. u 09:05zapis iz teksta poruke
#2
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.
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;
}

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 ®
Re: Zadatak sa pojavom prekoracenja ( u C-u) 06.10.2007. u 09:00 · pre 232 meseca #3
@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)
Re: Zadatak sa pojavom prekoracenja ( u C-u) 07.10.2007. u 00:30 · pre 232 meseca #4
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...
Potpis
LimaSoft ®
Re: Zadatak sa pojavom prekoracenja ( u C-u) 07.10.2007. u 15:13 · pre 232 meseca #5
Evo uradio sam bez upotrebe funkcija iz math.h

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;
}



ima jos varijanta bez upotrebe DOULBE, nesto preko nizova.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme