maja 28.02.2012 17:16
Predmet:Pomoc za zadatak u C-u

Da li je dobar moj pokusaj resavanja ovog zadatka ili bi vi drugacije napisali?
Napisati funkciju int Particija Parnih(int n) koja izracunava i vraca broj particija parnog broja n u kojima ucestvuju samo parni sabirci!
int broj_particija(int n)
{
int i,j,broj,parni,s;int a[100];
broj=0;
for(i=0;i<n;i++)
a[i]=0;
uvecaj(a);
while(a[n-1]!=1)
{
s=0;
parni=1;
j=0;
while(parni && j<n)
{
if(a[j]==1)
{
parni=(j+1%2=0);
if(parni)
s=s+j+1;
}
j++;
}
if(parni && n==s)
broj++;
uvecaj(a);
}
return(broj);
}
void uvecaj(int *a)
{
int i=0;
while(a[i]==1)
a[i++]=0;
a[i]=1;
}

zxz 28.02.2012 17:46
Predmet:Re: Pomoc za zadatak u C-u

Citat:
Napisati funkciju int Particija Parnih(int n) koja izracunava i vraca broj particija parnog broja n u kojima ucestvuju samo parni sabirci!

Da budem iskren nije meni jasno sta je broj particija parnih brojeva.
a ovo tvoje mogu malo opisati.

int broj_particija(int n) // Ime procedure sa ulaznim parametrom n koji je integer
{
int i,j,broj,parni,s;int a[100];
broj=0;
for(i=0;i<n;i++) // Petlja koja broji od nule sve dok je i manje od n sa uvecanje i za 1
a[i]=0; // sve var a ce poprimiti vrijeednost 0
uvecaj(a); // ovo bi morala biti neka procedura koja se poziva ali kako neznam?
// Ako uvecava vrijenost a trebala bi i variabla koja ce prihvatiti to uvecanje
while(a[n-1]!=1) // while (brojac = 0) ili mozda treba do neznam kakva je namjera
{ / pocinje while1 petlja
s=0; // se ce uvijek biti 0
parni=1;
j=0;
while(parni && j<n) // druga while koja radi u prvoj
{ // pocinje druga while
if(a[j]==1) // Uporedjuje vrijednost a ali sve vrijednosti a su 0.
{
parni=(j+1%2=0); // Ovo je Mod operator i treba biblioteka na vrhu '#include <stdio.h>'
// Trebalo bi parni=(j+1% 2);
if(parni) //Ako je parni
s=s+j+1;
} // Ovdje se zatvara druga while. Trebq voditi racuna gdje se zatvara jer dotle broji.
//Velikom zagradom zatcar i otvaras.
j++;
}
if(parni && n==s) // Logički I (binarni operator) i dali je n jednako s
broj++;
uvecaj(a);// opet poziv itd..
}
return(broj); /Vraca vrijednost iz var broj
}
void uvecaj(int *a)
{
int i=0;
while(a[i]==1)
a[i++]=0;
a[i]=1;
}

maja 28.02.2012 17:52
Predmet:Re: Pomoc za zadatak u C-u

Hvala,na odgovoru znacice mi i ovo!