[ zpokimica @ 11.07.2006. 20:26 ] @
Trebaju mi dve funkcije: prva da od niza S koji ima N elemenata izpitam koliko ima prostih celih brojeva; druga da odstampam najduzi podniz parnih brojeva, datog niza S. Molim vas da mi pomognete.... |
[ zpokimica @ 11.07.2006. 20:26 ] @
[ VRider @ 11.07.2006. 20:35 ] @
Kako? Da ti napisemo funkcije?
[ #Ninja# @ 11.07.2006. 21:01 ] @
Evo ti funkcija koja provjerava da li je broj prost, a ti je sebi preradi prema svom problemu.
Code: bool Prost(int a) { int i=1; bool IND=1; // broj je prost (za sada) while ((i<=a/2) && (IND==1)) //nema potrebe da se provjerava djeljivost dalje od polovine { if((a%i)==0) { if (i!=1 && i!=a) IND=0; } i+=1; } return IND; /* vraca se 1 ako je broj prost */ } [ NrmMyth @ 12.07.2006. 00:07 ] @
Citat: #Ninja#: //nema potrebe da se provjerava djeljivost dalje od polovine provjerava se od 2 do sqrt(n) i samo sa neparnim brojevima Citat: druga da odstampam najduzi podniz parnih brojeva, datog niza S. Zar to nisu svi parni brojevi u nizu?! [ zpokimica @ 12.07.2006. 20:44 ] @
Ne, nisu to svi parni brojevi u nizu, na primer, ako je niz S= [1,2,4,5,7,9,10,12,18,16,9,11,10,8,6],
najduzi podniz parnih brojeva bio bi Sp= [10,12,18,16]. E, treba mi da mi napise neko fnukciju koja mi to pronalazi... Unapred hvala, narode!!! [ NrmMyth @ 12.07.2006. 22:53 ] @
Bitno je bilo za naglasiti UZASTOPNIH...
[ Kretosh @ 14.07.2006. 20:39 ] @
Evo ti funkcije:
Code: inline bool Paran(char broj) { return broj % 2 ==0 ? true : false; } int* PodnizParnih(const int* Niz,int& iDuzina) { int iStartIndex,iDuzinaPodniza,iDuzinaNiza=iDuzina; for(int i=0,int TempStart=0,int TempDuzinaNiza=0;i<iDuzinaNiza;i++) { if(Paran(Niz[i]) && (i+1)!=iDuzinaNiza) //ako je paran i nije poslednji ++TempDuzinaNiza; else { TempStart=i-TempDuzinaNiza; if(TempDuzinaNiza>iDuzinaPodniza || ((i+1)==iDuzinaNiza && Paran(Niz[i]) && TempDuzinaNiza>=iDuzinaPodniza) ) { iDuzinaPodniza=TempDuzinaNiza; iStartIndex=TempStart; if(Paran(Niz[i])) ++iDuzinaPodniza; } TempDuzinaNiza=0; } } iDuzina=iDuzinaPodniza; int *Returned=new int[iDuzinaPodniza]; for(int z=0;z<iDuzinaPodniza;z++) Returned[z]=Niz[iStartIndex+z]; return Returned; } Btw. sad sam primetio da je poruka u C forumu,mada je konverzija iz C++ u C ovde trivijalna,pa to sam uradi. [ zpokimica @ 16.07.2006. 10:45 ] @
HVALA PUNO, PRIJATELJU!!!
Z. --------------------------------- How low will we go? Check out Yahoo! Messenger�s low PC-to-Phone call rates. --0-880217126-1153042855=:95285 Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: 8bit <BR><BR><B><I>Kretosh <[email protected]></I></B> wrote: <BLOCKQUOTE class=replbq style="BORDER-LEFT: #1010ff 2px solid; MARGIN-LEFT: 5px; PADDING-LEFT: 5px">Evo ti funkcije:<BR><BR> Code: <BR><BR><BR>Btw. sad sam primetio da je poruka u C forumu,mada je konverzija iz C++ u C ovde trivijalna,pa to sam uradi.<BR><BR>--<BR>http://www.elitesecurity.org/p...R><BR>Prijave/odjave: http://www.elitesecurity.org/p...e#187292<BR><BR>Ne menjajte sledece dve linije ukoliko odgovarate putem emaila!<BR>esauth:187292:07a69f00427bb207b00a1bf7b8525e9d<BR>inline bool Paran(char broj)<BR>{<BR>return broj % 2 ==0 ? true : false;<BR>}<BR><BR>int* PodnizParnih(const int* Niz,int& iDuzina)<BR>{<BR>int iStartIndex,iDuzinaPodniza,iDuzinaNiza=iDuzina; <BR>for(int i=0,int TempStart=0,int TempDuzinaNiza=0;i<IDUZINANIZA;I++)<BR>{<BR>if(Paran(Niz/) && (i+1)!=iDuzinaNiza) //ako je paran i nije poslednji <BR>++TempDuzinaNiza;<BR>else <BR>{<BR>TempStart=i-TempDuzinaNiza;<BR>if(TempDuzinaNiza>iDuzinaPodniza || ((i+1)==iDuzinaNiza && Paran(Niz/) && TempDuzinaNiza>=iDuzinaPodniza) )<BR>{<BR>iDuzinaPodniza=TempDuzinaNiza;<BR>iStartIndex=TempStart;<BR>if(Paran(Niz/)) <BR>++iDuzinaPodniza; <BR>}<BR>TempDuzinaNiza=0;<BR>}<BR><BR>}<BR><BR>iDuzina=iDuzinaPodniza;<BR><BR>int *Returned=new int[iDuzinaPodniza];<BR><BR>for(int z=0;z<IDUZINAPODNIZA;Z++)<BR> Returned[z]=Niz[iStartIndex+z];<BR><BR>return Returned;<BR>}<BR> Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|