Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
CROmpir Forumaš(ica)
Pridružen/a: 15. 09. 2009. (18:27:06) Postovi: (B3)16
|
Postano: 23:23 ned, 13. 3. 2011 Naslov: |
|
|
Napišite program koji učitava prirodni broj k < 9, te niz od k različitih dekadskih znamenaka. Ukoliko učitane znamenke nisu različite, program treba ispisati poruku "Greska!" (bez navodnika).
Program treba ispisati sumu svih prirodnih brojeva čije su znamenke iz učitanog niza, te se ne ponavljaju unutar jednog broja.
Na primjer, za k = 2 i učitane brojeve 1 i 3, program ispisuje "48" (jer je 1+3+13+31=48).
Imam problem sto napravim sve moguce kombinacije npr. brojeva 1,3,5
znaci 1+3+5+13+15.... Imam funkciju koja pretvara niz u broj, funkcija koja brise i ti elemenat niza i radi permutacije, i permutacije...
No kako da napravim da radi za n>3 npr... n=7 ... Treba li generirati razlicite i-ove za izbacivanje... Ili postoji mozda neki laksi nacin? :) Dobro bi mi dosla svaka pomoc, izgubio sam se malo u ovome...
Napišite program koji učitava prirodni broj k < 9, te niz od k različitih dekadskih znamenaka. Ukoliko učitane znamenke nisu različite, program treba ispisati poruku "Greska!" (bez navodnika).
Program treba ispisati sumu svih prirodnih brojeva čije su znamenke iz učitanog niza, te se ne ponavljaju unutar jednog broja.
Na primjer, za k = 2 i učitane brojeve 1 i 3, program ispisuje "48" (jer je 1+3+13+31=4.
Imam problem sto napravim sve moguce kombinacije npr. brojeva 1,3,5
znaci 1+3+5+13+15.... Imam funkciju koja pretvara niz u broj, funkcija koja brise i ti elemenat niza i radi permutacije, i permutacije...
No kako da napravim da radi za n>3 npr... n=7 ... Treba li generirati razlicite i-ove za izbacivanje... Ili postoji mozda neki laksi nacin? Dobro bi mi dosla svaka pomoc, izgubio sam se malo u ovome...
|
|
[Vrh] |
|
ceps Forumaš(ica)
Pridružen/a: 08. 10. 2010. (13:03:07) Postovi: (13A)16
|
Postano: 19:23 sri, 16. 3. 2011 Naslov: |
|
|
Poslao sam taj isti zadatak (3. iz Rekurzija 1) na verifikaciju, i kaže mi da je netočno za input 2 0 9.
Utipkam taj isti 2 0 9 u program, izbaci 99... što i je zbroj svih brojeva čije su znamenke 0 i 9, bez da se ponavljaju... 90 i 9, je li...
Ili ja to nekako krivo gledam?
Broje li se ''09'' i ''9'' dvaput?
EDIT: Ah, evo, podrobno kontrolirajući program, shvatio sam da sam izbrisao jedan return nešto; lajn, iako mi je i bez njega u codeblocksu kompajliralo...
Zbunjen sam.
Valjda će sad biti OK.
Poslao sam taj isti zadatak (3. iz Rekurzija 1) na verifikaciju, i kaže mi da je netočno za input 2 0 9.
Utipkam taj isti 2 0 9 u program, izbaci 99... što i je zbroj svih brojeva čije su znamenke 0 i 9, bez da se ponavljaju... 90 i 9, je li...
Ili ja to nekako krivo gledam?
Broje li se ''09'' i ''9'' dvaput?
EDIT: Ah, evo, podrobno kontrolirajući program, shvatio sam da sam izbrisao jedan return nešto; lajn, iako mi je i bez njega u codeblocksu kompajliralo...
Zbunjen sam.
Valjda će sad biti OK.
|
|
[Vrh] |
|
Togepi Forumaš(ica)
Pridružen/a: 21. 11. 2010. (14:31:41) Postovi: (2B)16
|
|
[Vrh] |
|
Togepi Forumaš(ica)
Pridružen/a: 21. 11. 2010. (14:31:41) Postovi: (2B)16
|
|
[Vrh] |
|
CROmpir Forumaš(ica)
Pridružen/a: 15. 09. 2009. (18:27:06) Postovi: (B3)16
|
Postano: 0:27 sub, 19. 3. 2011 Naslov: |
|
|
Napišite program koji učitava prirodni broj k < 9, te niz od k različitih dekadskih znamenaka. Ukoliko učitane znamenke nisu različite, program treba ispisati poruku "Greska!" (bez navodnika).
Program treba ispisati sumu svih prirodnih brojeva čije su znamenke iz učitanog niza, te se ne ponavljaju unutar jednog broja.
Na primjer, za k = 2 i učitane brojeve 1 i 3, program ispisuje "48" (jer je 1+3+13+31=4.
Imam problem sto napravim sve moguce kombinacije npr. brojeva 1,3,5...
Moze li netko napisati rekurzivno rjesenje ovog zadatka? Moze i pm... :) hvala na pomoci :)
Napišite program koji učitava prirodni broj k < 9, te niz od k različitih dekadskih znamenaka. Ukoliko učitane znamenke nisu različite, program treba ispisati poruku "Greska!" (bez navodnika).
Program treba ispisati sumu svih prirodnih brojeva čije su znamenke iz učitanog niza, te se ne ponavljaju unutar jednog broja.
Na primjer, za k = 2 i učitane brojeve 1 i 3, program ispisuje "48" (jer je 1+3+13+31=4.
Imam problem sto napravim sve moguce kombinacije npr. brojeva 1,3,5...
Moze li netko napisati rekurzivno rjesenje ovog zadatka? Moze i pm... hvala na pomoci
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
CROmpir Forumaš(ica)
Pridružen/a: 15. 09. 2009. (18:27:06) Postovi: (B3)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 13:06 sub, 19. 3. 2011 Naslov: |
|
|
Napravi sve permutacije i dobit ces sve brojeve od [i]k[/i] znamenaka. E sad, ako sumiranje broja ne ogranicis na najdublji poziv rekurzije, nego stavis na pocetak svakog, skoro da imas rjesenje. Ostaje ti paziti da pocetna znamenka nije nula.
Napravi sve permutacije i dobit ces sve brojeve od k znamenaka. E sad, ako sumiranje broja ne ogranicis na najdublji poziv rekurzije, nego stavis na pocetak svakog, skoro da imas rjesenje. Ostaje ti paziti da pocetna znamenka nije nula.
_________________ 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] |
|
CROmpir Forumaš(ica)
Pridružen/a: 15. 09. 2009. (18:27:06) Postovi: (B3)16
|
|
[Vrh] |
|
jabuka Forumaš(ica)
Pridružen/a: 21. 11. 2009. (15:53:14) Postovi: (7C)16
|
Postano: 15:26 ned, 20. 3. 2011 Naslov: |
|
|
imam problema s 2.zadacom...pa ako bi netko mogo pomoc, meni je ovaj moj kod potpuno logican, al ne radi :oops:
faktor razmnozavanja je 9, i virusi zive 5 dana
hvala
[code:1]
#include<stdio.h>
int novivirusi(int n, int p){
if(n==1) return p*9;
else return (novivirusi(n-1, p) + ukupnovirusa(n-2, p))*9;}
int ukupnovirusa (int n, int p){
if(n==0) return p;
if(n<5) return (novivirusi(n,p) + ukupnovirusa(n-1, p));
return (novivirusi(n,p)+ukupnovirusa(n-1, p) - ukupnovirusa(n-5,p));}
int main(void){
int p, n;
scanf("%d%d", &p, &n);
printf("%d", ukupnovirusa(n, p));
return 0;
}
[/code:1]
imam problema s 2.zadacom...pa ako bi netko mogo pomoc, meni je ovaj moj kod potpuno logican, al ne radi
faktor razmnozavanja je 9, i virusi zive 5 dana
hvala
Kod: |
#include<stdio.h>
int novivirusi(int n, int p){
if(n==1) return p*9;
else return (novivirusi(n-1, p) + ukupnovirusa(n-2, p))*9;}
int ukupnovirusa (int n, int p){
if(n==0) return p;
if(n<5) return (novivirusi(n,p) + ukupnovirusa(n-1, p));
return (novivirusi(n,p)+ukupnovirusa(n-1, p) - ukupnovirusa(n-5,p));}
int main(void){
int p, n;
scanf("%d%d", &p, &n);
printf("%d", ukupnovirusa(n, p));
return 0;
}
|
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 15:42 ned, 20. 3. 2011 Naslov: |
|
|
Greska ti je u oduzimanju umrlih. Ne umru svi ("ukupno virusa") od prije 5 dana, jer tako svakog umlatis 5 puta. Umiru samo oni koji su stvoreni prije pet dana ("novi virusi").
Ovako napamet, ne znam je l' to jedino. Probaj, pa vidi. :)
Greska ti je u oduzimanju umrlih. Ne umru svi ("ukupno virusa") od prije 5 dana, jer tako svakog umlatis 5 puta. Umiru samo oni koji su stvoreni prije pet dana ("novi virusi").
Ovako napamet, ne znam je l' to jedino. Probaj, pa vidi.
_________________ 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] |
|
ceps Forumaš(ica)
Pridružen/a: 08. 10. 2010. (13:03:07) Postovi: (13A)16
|
Postano: 15:40 sri, 30. 3. 2011 Naslov: |
|
|
Imam problem sa onim zadatkom sa matricom i spiralom. Uglavnom, testirao sam ovaj kod i sa ispisom matrice i ispisuje baš lijepo, spiralno... :)
Kod je ovakav
[code:1]
#include <stdio.h>
#include <stdlib.h>
void upis(int **a, int n )
{
int r, s, smjer_s = 1, smjer_r = 0, i = 0;
for (r = 0; r < n; r++)
for(s = 0; s < n; s++)
a[r][s] = 0;
r = 0;
s = 0;
while (i < n*n)
{
if(smjer_s == 1 && smjer_r == 0 && (s == n - 1 || a[r][s + 1] != 0 ))
{
smjer_s = 0;
smjer_r = 1;
}
if(smjer_s == 0 && smjer_r == 1 && (r == n - 1 || a[r+1][s] != 0 ))
{
smjer_s = -1;
smjer_r = 0;
}
if(smjer_s == -1 && smjer_r == 0 && ( s == 0 || a[r][s - 1] != 0 ))
{
smjer_s = 0;
smjer_r = -1;
}
if(smjer_s == 0 && smjer_r == -1 && ( r == 0 || a[r-1][s] != 0))
{
smjer_s = 1;
smjer_r = 0;
}
scanf("%d", &a[r][s]);
r = r + smjer_r;
s = s + smjer_s;
i++;
}
}
int main()
{
int **a, n, i, suma = 0;
scanf("%d", &n);
a = (int**)malloc(n*sizeof(int*));
for(i = 0; i < n; i++)
{
a[i] = (int*)malloc(n*sizeof(int));
}
upis(a, n);
for(i = 0; i < n; i++)
{
suma = suma + a[i][i];
}
printf("%d", suma);
for(i = 0; i < n; i++)
{
free (a[i]);
}
free(a);
return 0;
}
[/code:1]
I zbilja ne znam u čemu je problem?
Imam problem sa onim zadatkom sa matricom i spiralom. Uglavnom, testirao sam ovaj kod i sa ispisom matrice i ispisuje baš lijepo, spiralno...
Kod je ovakav
Kod: |
#include <stdio.h>
#include <stdlib.h>
void upis(int **a, int n )
{
int r, s, smjer_s = 1, smjer_r = 0, i = 0;
for (r = 0; r < n; r++)
for(s = 0; s < n; s++)
a[r][s] = 0;
r = 0;
s = 0;
while (i < n*n)
{
if(smjer_s == 1 && smjer_r == 0 && (s == n - 1 || a[r][s + 1] != 0 ))
{
smjer_s = 0;
smjer_r = 1;
}
if(smjer_s == 0 && smjer_r == 1 && (r == n - 1 || a[r+1][s] != 0 ))
{
smjer_s = -1;
smjer_r = 0;
}
if(smjer_s == -1 && smjer_r == 0 && ( s == 0 || a[r][s - 1] != 0 ))
{
smjer_s = 0;
smjer_r = -1;
}
if(smjer_s == 0 && smjer_r == -1 && ( r == 0 || a[r-1][s] != 0))
{
smjer_s = 1;
smjer_r = 0;
}
scanf("%d", &a[r][s]);
r = r + smjer_r;
s = s + smjer_s;
i++;
}
}
int main()
{
int **a, n, i, suma = 0;
scanf("%d", &n);
a = (int**)malloc(n*sizeof(int*));
for(i = 0; i < n; i++)
{
a[i] = (int*)malloc(n*sizeof(int));
}
upis(a, n);
for(i = 0; i < n; i++)
{
suma = suma + a[i][i];
}
printf("%d", suma);
for(i = 0; i < n; i++)
{
free (a[i]);
}
free(a);
return 0;
}
|
I zbilja ne znam u čemu je problem?
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
ceps Forumaš(ica)
Pridružen/a: 08. 10. 2010. (13:03:07) Postovi: (13A)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 19:42 sri, 30. 3. 2011 Naslov: |
|
|
Tako nekako, dakle prati se koji je najljeviji, najdesniji, najgornji i najdonji index.
Tako nekako, dakle prati se koji je najljeviji, najdesniji, najgornji i najdonji index.
_________________ 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] |
|
Fikus Forumaš(ica)
Pridružen/a: 14. 07. 2010. (00:00:23) Postovi: (1C)16
Lokacija: Somewhere around the world
|
Postano: 23:00 uto, 5. 4. 2011 Naslov: |
|
|
[code:1]#include<stdio.h>
int main(){
int a[17], b[17][17], i, j, m, n;
scanf("%d",&n);
for(i=0; i<2*n-1; ++i){
scanf("%d", &a[i]);
}
int d=0;
for(i=0; i<n; i++){
for(j=0; j<n;j++){
if(i==0||j==n-1){
b[i][j]=a[d];
d++;
}
}
}
for(i=1;i<n;i++){
for(j=n-2; j>=0; j--){
if(j>i || j==i){
b[i][j]=(-4*b[i-1][j]-6*b[i][j+1])%9535127;
}
if(i>j){
b[i][j]=0;
}
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(i==j)
printf("%d ",b[i][j]);
}
}
return 0;
}[/code:1]
isao sam ispisat matricu i dobro ispisuje i sve stima pa mi nije jasno di je greska :), ako moze pomoc?
Kod: | #include<stdio.h>
int main(){
int a[17], b[17][17], i, j, m, n;
scanf("%d",&n);
for(i=0; i<2*n-1; ++i){
scanf("%d", &a[i]);
}
int d=0;
for(i=0; i<n; i++){
for(j=0; j<n;j++){
if(i==0||j==n-1){
b[i][j]=a[d];
d++;
}
}
}
for(i=1;i<n;i++){
for(j=n-2; j>=0; j--){
if(j>i || j==i){
b[i][j]=(-4*b[i-1][j]-6*b[i][j+1])%9535127;
}
if(i>j){
b[i][j]=0;
}
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(i==j)
printf("%d ",b[i][j]);
}
}
return 0;
} |
isao sam ispisat matricu i dobro ispisuje i sve stima pa mi nije jasno di je greska , ako moze pomoc?
_________________ Pokušate li, možda nećete uspjeti, ne pokušate li, sigurno nećete.
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
JJ Forumaš(ica)
Pridružen/a: 05. 10. 2010. (14:35:40) Postovi: (34)16
Spol:
|
Postano: 21:38 pet, 8. 4. 2011 Naslov: |
|
|
Imam pitanje u vezi prve zadaće, 3. zadatka: Napišite program koji učitava prirodni broj k < 9, te niz od k različitih dekadskih znamenaka. Ukoliko učitane znamenke nisu različite, program treba ispisati poruku "Greska!" (bez navodnika).
Program treba ispisati sumu svih prirodnih brojeva čije su znamenke iz učitanog niza, te se ne ponavljaju unutar jednog broja.
Provjera zadaće mi uporno govori da mi ovaj dio koda gdje treba ispisivat grešku ne radi, tj: "Provjera zad: 3 (netočno za input: 3 0 6 0)".
Međutim, kad sam provjeravam uredno ispisuje grešku za isti taj input, evo taj dio koda:
[code:1]int main(void){
int k, j, l;
int x[9];
printf("Unesi broj k<9: ");
scanf("%d", &k);
for(j = 0; j < k; j++){
printf("Unesi broj: ");
scanf("%d", &x[j]);
}
for(j = 0; j < k-1; j++)
for(l = j+1; l < k; l++)
if (x[j] == x[l]){
printf("Greska!");
return 0;
}
printf("Suma iznosi: %d", suma(k, x));
return 0;
}
[/code:1]
U čemu bi bio problem?
EDIT: sad sam tek uočio, jel moguće da je ovaj printf viška prije učitavanja problem?
Imam pitanje u vezi prve zadaće, 3. zadatka: Napišite program koji učitava prirodni broj k < 9, te niz od k različitih dekadskih znamenaka. Ukoliko učitane znamenke nisu različite, program treba ispisati poruku "Greska!" (bez navodnika).
Program treba ispisati sumu svih prirodnih brojeva čije su znamenke iz učitanog niza, te se ne ponavljaju unutar jednog broja.
Provjera zadaće mi uporno govori da mi ovaj dio koda gdje treba ispisivat grešku ne radi, tj: "Provjera zad: 3 (netočno za input: 3 0 6 0)".
Međutim, kad sam provjeravam uredno ispisuje grešku za isti taj input, evo taj dio koda:
Kod: | int main(void){
int k, j, l;
int x[9];
printf("Unesi broj k<9: ");
scanf("%d", &k);
for(j = 0; j < k; j++){
printf("Unesi broj: ");
scanf("%d", &x[j]);
}
for(j = 0; j < k-1; j++)
for(l = j+1; l < k; l++)
if (x[j] == x[l]){
printf("Greska!");
return 0;
}
printf("Suma iznosi: %d", suma(k, x));
return 0;
}
|
U čemu bi bio problem?
EDIT: sad sam tek uočio, jel moguće da je ovaj printf viška prije učitavanja problem?
|
|
[Vrh] |
|
kikzmyster Forumaš(ica)
Pridružen/a: 14. 10. 2010. (13:35:08) Postovi: (72)16
Spol:
|
|
[Vrh] |
|
JJ Forumaš(ica)
Pridružen/a: 05. 10. 2010. (14:35:40) Postovi: (34)16
Spol:
|
|
[Vrh] |
|
|