Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
hendrix Forumaš(ica)
Pridružen/a: 03. 09. 2012. (15:59:06) Postovi: (92)16
|
|
[Vrh] |
|
jaija Forumaš(ica)
Pridružen/a: 12. 11. 2012. (15:59:39) Postovi: (5)16
|
|
[Vrh] |
|
hendrix Forumaš(ica)
Pridružen/a: 03. 09. 2012. (15:59:06) Postovi: (92)16
|
Postano: 21:50 sub, 17. 11. 2012 Naslov: |
|
|
Ne znam stvarno cemu sam otvorio temu gotovo istog naziva prije nekoliko sati ako ce se sad za svako pitanje otvarati nova :D (modovi, moze merge?)
Uglavnom, evo mog rjesenja za taj zadatak, valjda je ok...
[code:1]#include <stdio.h>
int main(void)
{
int n, b, c=0, i=0, j;
scanf("%d", &n);
if (n>10)
printf("Upisani broj je veci od 10.");
else
{
while(c == 0)
{
i+=1;
b = 0;
for (j = 2; j < n+1; j++)
{
if ((i%j) != (j-1))
b += 1;
}
if (b == 0)
c = 1;
}
printf("%d", i);
}
return 0;
}
[/code:1]
Ne znam stvarno cemu sam otvorio temu gotovo istog naziva prije nekoliko sati ako ce se sad za svako pitanje otvarati nova (modovi, moze merge?)
Uglavnom, evo mog rjesenja za taj zadatak, valjda je ok...
Kod: | #include <stdio.h>
int main(void)
{
int n, b, c=0, i=0, j;
scanf("%d", &n);
if (n>10)
printf("Upisani broj je veci od 10.");
else
{
while(c == 0)
{
i+=1;
b = 0;
for (j = 2; j < n+1; j++)
{
if ((i%j) != (j-1))
b += 1;
}
if (b == 0)
c = 1;
}
printf("%d", i);
}
return 0;
}
|
|
|
[Vrh] |
|
Shirohige Forumaš(ica)
Pridružen/a: 16. 11. 2012. (20:19:56) Postovi: (ED)16
Spol:
|
|
[Vrh] |
|
krki Forumaš(ica)
Pridružen/a: 06. 07. 2011. (20:30:12) Postovi: (2E)16
|
Postano: 22:59 sub, 17. 11. 2012 Naslov: |
|
|
Može li netko pojasniti 9. zadatak:
[quote]Zadatak 9:
Napiˇsite program koji uˇcitava prirodni broj n. Program treba ispisati koliko ima prirodnih brojeva, strogo ve´cih od 1, ˇciji
kvadrat dijeli broj n.
[b]Primjer: broj n = 36 je djeljiv s 22, 32 i 62, pa program treba ispisati 3.[/b][/quote]
Mislim da sam shvatio što se tražu u zadatku, ali ovaj primjer meni stvarno nema smisla.
EDIT: Sad tek vidim da je 22 zapravo 2^2 itd. zanemarite ovo :D
Može li netko pojasniti 9. zadatak:
Citat: | Zadatak 9:
Napiˇsite program koji uˇcitava prirodni broj n. Program treba ispisati koliko ima prirodnih brojeva, strogo ve´cih od 1, ˇciji
kvadrat dijeli broj n.
Primjer: broj n = 36 je djeljiv s 22, 32 i 62, pa program treba ispisati 3. |
Mislim da sam shvatio što se tražu u zadatku, ali ovaj primjer meni stvarno nema smisla.
EDIT: Sad tek vidim da je 22 zapravo 2^2 itd. zanemarite ovo
|
|
[Vrh] |
|
krki Forumaš(ica)
Pridružen/a: 06. 07. 2011. (20:30:12) Postovi: (2E)16
|
Postano: 18:57 uto, 20. 11. 2012 Naslov: |
|
|
Vezano za 41. zadatak...
[quote]Napiˇsite program koji uˇctava prirodne brojeve n, s i bazu b ≥ 2. Program treba ispisati sve prirodne brojeve manje ili
jednake n, kojima je suma svih znamenki u bazi b jednaka zadanom broju s. Te brojeve treba ispisati uzlazno po veliˇcini.
Na kraju, treba ispisati i broj takvih brojeva.
Na primjer, za n = 150, s = 4 i b = 10, traˇzeni brojevi su 4, 13, 22, 31, 103, 112, 121, 130, a ima ih 8.[/quote]
U primjeru nije naveden broj 40, dakle ima ih ukupno 9.
Vezano za 41. zadatak...
Citat: | Napiˇsite program koji uˇctava prirodne brojeve n, s i bazu b ≥ 2. Program treba ispisati sve prirodne brojeve manje ili
jednake n, kojima je suma svih znamenki u bazi b jednaka zadanom broju s. Te brojeve treba ispisati uzlazno po veliˇcini.
Na kraju, treba ispisati i broj takvih brojeva.
Na primjer, za n = 150, s = 4 i b = 10, traˇzeni brojevi su 4, 13, 22, 31, 103, 112, 121, 130, a ima ih 8. |
U primjeru nije naveden broj 40, dakle ima ih ukupno 9.
|
|
[Vrh] |
|
BlameGame Forumaš(ica)
Pridružen/a: 14. 09. 2011. (19:17:53) Postovi: (6C)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 17:05 sri, 21. 11. 2012 Naslov: |
|
|
Trazis broj svih razlicitih djelitelja. Recimo, za [tex]n = 7[/tex]:
[table]k[format]head[/format] broj razlicitih djelitelja[format]align:center[/format] djelitelji (ovo ne treba ispisati)[format]align:left[/format]
1 1 1
2 2 1,2
3 2 1,3
4 3 1,2,4
5 2 1,5
6 4 1,2,3,6
7 2 1,7[/table]
Maksimum [tex]f(k)[/tex] za [tex]k \in \{1,\dots,n\}[/tex] se postiže za [tex]k = 6[/tex].
Trazis broj svih razlicitih djelitelja. Recimo, za [tex]n = 7[/tex]:
k | broj razlicitih djelitelja | djelitelji (ovo ne treba ispisati) |
---|
1 | 1 | 1 |
---|
2 | 2 | 1,2 |
---|
3 | 2 | 1,3 |
---|
4 | 3 | 1,2,4 |
---|
5 | 2 | 1,5 |
---|
6 | 4 | 1,2,3,6 |
---|
7 | 2 | 1,7 |
---|
Maksimum [tex]f(k)[/tex] za [tex]k \in \{1,\dots,n\}[/tex] se postiže za [tex]k = 6[/tex].
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
Favor Forumaš s poteškoćama u pisanju
Pridružen/a: 04. 11. 2012. (11:49:36) Postovi: (A)16
|
|
[Vrh] |
|
BlameGame Forumaš(ica)
Pridružen/a: 14. 09. 2011. (19:17:53) Postovi: (6C)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 23:51 pet, 23. 11. 2012 Naslov: |
|
|
[quote="Favor"]Jel zna netko kako riješit 108. zadatak?
Mene naime najvise muci kako zapisat broj znakova koji se treba ponavljat i razmak izmedju njih(linija).[/quote]
[tt]for[/tt]-petlja i ispisujes znak po znak.
[quote="BlameGame"]Moze netko pliz 12.??[/quote]
[tt]for[/tt]-petlja u kojoj neki [tt]k[/tt] ide od 1, pa dok je [tt]2 * k * k <= m[/tt]. Time osiguras da je prvi sumand ([tex]k^2[/tex]) kvadrat prirodnog broja i da je manji od drugog, cime sprijecis ponavljanje parova. Ostaje provjeriti da je [tex]m - k^2[/tex] potpuni kvadrat, sto mozes rastavom na proste faktore (umjesto ispisa faktora, brojis koliko se puta svaki pojavio; broj je potpuni kvadrat ako se svi pojave parno mnogo puta). Ako je [tex]m - k^2[/tex] potpuni kvadrat, povecas odgovarajuci brojac.
Na kraju petlje, vidis je li brojac veci ili jednak [tex]n[/tex]. Ako nije, resetiras brojac, povecas [tt]m[/tt] za jedan i ponovis pricu.
Favor (napisa): | Jel zna netko kako riješit 108. zadatak?
Mene naime najvise muci kako zapisat broj znakova koji se treba ponavljat i razmak izmedju njih(linija). |
for-petlja i ispisujes znak po znak.
BlameGame (napisa): | Moze netko pliz 12.?? |
for-petlja u kojoj neki k ide od 1, pa dok je 2 * k * k ⇐ m. Time osiguras da je prvi sumand ([tex]k^2[/tex]) kvadrat prirodnog broja i da je manji od drugog, cime sprijecis ponavljanje parova. Ostaje provjeriti da je [tex]m - k^2[/tex] potpuni kvadrat, sto mozes rastavom na proste faktore (umjesto ispisa faktora, brojis koliko se puta svaki pojavio; broj je potpuni kvadrat ako se svi pojave parno mnogo puta). Ako je [tex]m - k^2[/tex] potpuni kvadrat, povecas odgovarajuci brojac.
Na kraju petlje, vidis je li brojac veci ili jednak [tex]n[/tex]. Ako nije, resetiras brojac, povecas m za jedan i ponovis pricu.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
Shirohige Forumaš(ica)
Pridružen/a: 16. 11. 2012. (20:19:56) Postovi: (ED)16
Spol:
|
Postano: 11:21 sub, 24. 11. 2012 Naslov: |
|
|
[quote]Zadatak 11:
Za prirodni broj n kazemo da je obilan, ako je strogo manji od sume svih svojih djelitelja, ukljucivo i 1, ali bez njega samog (ako je broj veci od 1). Napisite program koji ucitava prirodni broj n. Program treba ispisati pocetak (prvi clan) i duljinu (broj clanova) najduljeg niza uzastopnih obilnih brojeva manjih ili jednakih n. Ako takvog niza nema, treba ispisati odgovarajucu poruku.
Primjer: za n = 15, jedini obilan broj do 15 je 12 (suma djelitelja je 16), pa program treba ispisati brojeve 12 i 1.[/quote]
U zadatku piše, da ako je broj veći od 1 izostavljamo 1 u sumi, dok je u primjeru 1 uključen u sumu tj. za 12 je to 1+2+3+4+6 = 16. Kako to onda treba rješiti?
Ja sam rješio uključujući jedinicu i za 15 mi ispadne 12 1, stavio sam n=10000 i dobio:
[url]http://imageshack.us/a/img211/8122/24112012102343.png[/url]
Jel to dobro? (Složio sam tako da ako je broj obilnih brojeva u različitim nizovima jednak da ispiše onaj prvi niz tj. 1. član prvog niza i odgovarajući broj članova)
Citat: | Zadatak 11:
Za prirodni broj n kazemo da je obilan, ako je strogo manji od sume svih svojih djelitelja, ukljucivo i 1, ali bez njega samog (ako je broj veci od 1). Napisite program koji ucitava prirodni broj n. Program treba ispisati pocetak (prvi clan) i duljinu (broj clanova) najduljeg niza uzastopnih obilnih brojeva manjih ili jednakih n. Ako takvog niza nema, treba ispisati odgovarajucu poruku.
Primjer: za n = 15, jedini obilan broj do 15 je 12 (suma djelitelja je 16), pa program treba ispisati brojeve 12 i 1. |
U zadatku piše, da ako je broj veći od 1 izostavljamo 1 u sumi, dok je u primjeru 1 uključen u sumu tj. za 12 je to 1+2+3+4+6 = 16. Kako to onda treba rješiti?
Ja sam rješio uključujući jedinicu i za 15 mi ispadne 12 1, stavio sam n=10000 i dobio:
http://imageshack.us/a/img211/8122/24112012102343.png
Jel to dobro? (Složio sam tako da ako je broj obilnih brojeva u različitim nizovima jednak da ispiše onaj prvi niz tj. 1. član prvog niza i odgovarajući broj članova)
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 11:42 sub, 24. 11. 2012 Naslov: |
|
|
"Ako je broj veci od 1" se odnosi na "bez njega samog". ;) Dakle, suma djelitelja od 1 je 1 (on sam ukljucen, jer je jednak 1), od 2 je 1 (nema dvojke u sumi), od 4 je 1+2 (nema cetvorke u sumi),...
Sto se primjera tice, ne znam napamet. Uzmi kalkulator i vidi jesu li 5775 i 5776 obilni. :)
"Ako je broj veci od 1" se odnosi na "bez njega samog". Dakle, suma djelitelja od 1 je 1 (on sam ukljucen, jer je jednak 1), od 2 je 1 (nema dvojke u sumi), od 4 je 1+2 (nema cetvorke u sumi),...
Sto se primjera tice, ne znam napamet. Uzmi kalkulator i vidi jesu li 5775 i 5776 obilni.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
Shirohige Forumaš(ica)
Pridružen/a: 16. 11. 2012. (20:19:56) Postovi: (ED)16
Spol:
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 20:13 sub, 24. 11. 2012 Naslov: |
|
|
Racunas koliko je ostatak pri dijeljenju [tex](n-1)![/tex] s brojem [tex]n[/tex]. No, faktorijeli jako brzo rastu:
[code:1]#include <stdio.h>
int main(void) {
int n = 1, prod = 1, op = 0;
while (prod > op) {
op = prod;
printf("%d! = ", ++n);
printf("%d\n", prod *= n);
}
printf("n = %d\n", n);
return 0;
}[/code:1]
To znaci da program koji racuna faktorijele nece daleko stici (na mojoj masini, do [tex]n = 13[/tex]).
Ono sto ti primjer kaze je da u svakom koraku racunas ostatak pri dijeljenju s [tex]n[/tex], tj. da iskoristis to da vrijedi:
[tex]\newcommand{\mod}{\mathop{\rm mod}}
(n-1)! \mod n = (1 \cdot 2 \cdots (n-1)) \mod n = (\cdots(((1 \mod n) \cdot 2) \mod n) \cdots (n-1)) \mod n[/tex].
Konkretno, u primjeru:
[table]n n![format]align:left[/format] racunas
1 1 1 mod 5 = [color=green]1[/color]
2 1 * 2 = 2 ([color=green]1[/color] * 2) mod 5 = [color=blue]2[/color]
3 2 * 3 = 6 ([color=blue]2[/color] * 3) mod 5 = [color=red]1[/color]
4 6 * 4 = 24 ([color=red]1[/color] * 4) mod 5 = [b]4[/b][/table]
Dakle, ostatak je 4 (isto kao i [tex]24 \mod 5[/tex]), sto je ekvivalentno ostatku -1 (jednostavno: 4+1 je djeljivo s 5).
Jasnije?
Racunas koliko je ostatak pri dijeljenju [tex](n-1)![/tex] s brojem [tex]n[/tex]. No, faktorijeli jako brzo rastu:
Kod: | #include <stdio.h>
int main(void) {
int n = 1, prod = 1, op = 0;
while (prod > op) {
op = prod;
printf("%d! = ", ++n);
printf("%d\n", prod *= n);
}
printf("n = %d\n", n);
return 0;
} |
To znaci da program koji racuna faktorijele nece daleko stici (na mojoj masini, do [tex]n = 13[/tex]).
Ono sto ti primjer kaze je da u svakom koraku racunas ostatak pri dijeljenju s [tex]n[/tex], tj. da iskoristis to da vrijedi:
[tex]\newcommand{\mod}{\mathop{\rm mod}}
(n-1)! \mod n = (1 \cdot 2 \cdots (n-1)) \mod n = (\cdots(((1 \mod n) \cdot 2) \mod n) \cdots (n-1)) \mod n[/tex].
Konkretno, u primjeru:
n | n! | racunas |
---|
1 | 1 | 1 mod 5 = 1 | 2 | 1 * 2 = 2 | (1 * 2) mod 5 = 2 | 3 | 2 * 3 = 6 | (2 * 3) mod 5 = 1 | 4 | 6 * 4 = 24 | (1 * 4) mod 5 = 4 |
Dakle, ostatak je 4 (isto kao i [tex]24 \mod 5[/tex]), sto je ekvivalentno ostatku -1 (jednostavno: 4+1 je djeljivo s 5).
Jasnije?
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
BlameGame Forumaš(ica)
Pridružen/a: 14. 09. 2011. (19:17:53) Postovi: (6C)16
|
|
[Vrh] |
|
Shirohige Forumaš(ica)
Pridružen/a: 16. 11. 2012. (20:19:56) Postovi: (ED)16
Spol:
|
Postano: 22:25 sub, 24. 11. 2012 Naslov: |
|
|
[quote="BlameGame"]Nije mi bas jasan tekst 19. zadatka? Da li se i znakovi unose ili?
[/quote]
Ja sam ovako scanf napisao:
[code:1]scanf("%d/%d %c %d/%d", &b1, &n1, &c, &b2, &n2);[/code:1]
tj. korisnik mora unijeti npr. "4/5 + 1/2"
BlameGame (napisa): | Nije mi bas jasan tekst 19. zadatka? Da li se i znakovi unose ili?
|
Ja sam ovako scanf napisao:
Kod: | scanf("%d/%d %c %d/%d", &b1, &n1, &c, &b2, &n2); |
tj. korisnik mora unijeti npr. "4/5 + 1/2"
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
jaija Forumaš(ica)
Pridružen/a: 12. 11. 2012. (15:59:39) Postovi: (5)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 1:20 ned, 25. 11. 2012 Naslov: |
|
|
Ne postoji "pretvaranje broja iz baze u bazu". "Baza broja" je samo nacin na koji je isti broj [b]zapisan[/b], no sam broj se ne mijenja. Dakle, pisali mi [tex]17[/tex], [tex](122)_3[/tex] ili [tex]\text{XVII}[/tex], rijec je o istom broju. U konacnici, broj u racunalu se pamti binarno, iako ti s njim obicno radis dekadski.
Dalje ovisi sto ti treba. Recimo, sumu/produkt znamenaka dobijes tako da uzastopno dijelis s bazom i zbrajas/mnozis ostatke. Ispis u nekoj bazi (ispravnim redom) mozes kako si napisao/la ili preko invertiranja broja (racunanja broja koji se dobije kad se izvrnu znamenke), sto je algoritam koji se radi na nekom predavanju.
Poanta: mozes izracunati znamenke i nesto s njima raditi, ali sam broj ne mozes "pretvarati" (naglasavam jer je rijec o stravicno cestoj greski koju studenti vole raditi).
Ako te muci konkretni kod, mozes ga ovdje nalijepiti kod, pa ce netko naci u cemu je problem.
Ne postoji "pretvaranje broja iz baze u bazu". "Baza broja" je samo nacin na koji je isti broj zapisan, no sam broj se ne mijenja. Dakle, pisali mi [tex]17[/tex], [tex](122)_3[/tex] ili [tex]\text{XVII}[/tex], rijec je o istom broju. U konacnici, broj u racunalu se pamti binarno, iako ti s njim obicno radis dekadski.
Dalje ovisi sto ti treba. Recimo, sumu/produkt znamenaka dobijes tako da uzastopno dijelis s bazom i zbrajas/mnozis ostatke. Ispis u nekoj bazi (ispravnim redom) mozes kako si napisao/la ili preko invertiranja broja (racunanja broja koji se dobije kad se izvrnu znamenke), sto je algoritam koji se radi na nekom predavanju.
Poanta: mozes izracunati znamenke i nesto s njima raditi, ali sam broj ne mozes "pretvarati" (naglasavam jer je rijec o stravicno cestoj greski koju studenti vole raditi).
Ako te muci konkretni kod, mozes ga ovdje nalijepiti kod, pa ce netko naci u cemu je problem.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
|