Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Za date prorodne brojeve, naci niz prirodnih borojeva pod nekim uslovom

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Za date prorodne brojeve, naci niz prirodnih borojeva pod nekim uslovom

[ Pregleda: 2654 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mijatovic_86
Linux System Administrator
TeleSign
Beograd

Član broj: 35044
Poruke: 361
*.maksnet.net.



Profil

icon [Zadatak] Za date prorodne brojeve, naci niz prirodnih borojeva pod nekim uslovom01.06.2006. u 14:16 - pre 217 meseci
Da li neko ima ideju kako da resim ovo:

Za date prorodne brojeve n i m, naci niz prirodnih borojeva a, tako da je n=1/a[1]+2/a[2]+...+m/a[m]

Nije neki veliki program, ali je problem, tako da ce svaka ideja dobro doci!!

Unapred hvala


Da to je ceo zadatak

[Ovu poruku je menjao mijatovic_86 dana 01.06.2006. u 20:01 GMT+1]
😀
 
Odgovor na temu

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 402



Profil

icon Re: [Zadatak] Za date prorodne brojeve, naci niz prirodnih borojeva pod nekim uslovom01.06.2006. u 18:02 - pre 217 meseci
Da li je to ceo zadatak?
 
Odgovor na temu

rumpl

Član broj: 54959
Poruke: 156
*.net81-66-198.noos.fr.



Profil

icon Re: [Zadatak] Za date prorodne brojeve, naci niz prirodnih borojeva pod nekim uslovom01.06.2006. u 22:48 - pre 217 meseci
Code:

#include <stdio.h>
#include <stdlib.h>

void calculate(int n, int m)
{
  int i;
  float result;
  int *a;
  
  result = 0;

  a = malloc(m * sizeof(int));
  
  for(i = 0; i < n; i++)
    a[i] = i + 1;
  
  for(i; i < m; i++)
    a[i] = (i)*(m - 1);
  
  for(i = 0; i < m; i++)
    result += ((i+1)/a[i]);
  
  printf("%f\n", result);    

  free(a);
}

int main(int argc, char *argv[])
{
  calculate(1234, 12345);
  calculate(24, 24);
  calculate(4, 6);
  calculate(5, 7);
  
  return(0);
}


Ovaj kod radi samo ako je n <= m.

A evo kako radi:
za sve a (i < n) a = i+1 (i+1 zato sto je prvi element a[0] a ne a[1]).
Za sada imamo zbir = n - 1;
I od ostatka treba samo zbir bude jednak 1.
Znaci za sve a (i >= n) a = (i+1)*(m-1).
Var result sam stavio kao float da bih bio siguran da je zbir tacan, da ne bi bilo zaokruzivanja int-a.

Nadam se da sam ti pomogao.

Ovaj kod u stvari nije dobar zato sto je tvoja formula tacna zamo ako n <= Sum(i, 1..n).
Ja sam uradio samo za n <= m.
Pa ti vidi kako bi uradio ostatak.

Srecno.
"The problem with the world is that everyone is a few drinks behind."
-Humphrey Bogart
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Za date prorodne brojeve, naci niz prirodnih borojeva pod nekim uslovom

[ Pregleda: 2654 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.