| Prethodna tema :: Sljedeća tema   | 
	
	
	
		| Autor/ica | 
		Poruka | 
	
	
		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: (3562)16 
Spol:   
Lokacija: /sbin/init 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		Zenon Forumaš(ica)
  
  
  Pridružen/a: 09. 09. 2011. (19:14:43) Postovi: (2B1)16 
Sarma: - 
Lokacija: [tex]\pm\infty[/tex] 
		 | 
		 | 
	
	
		| [Vrh] | 
		 | 
	
	
		BlameGame Forumaš(ica)
  
 
  Pridružen/a: 14. 09. 2011. (19:17:53) Postovi: (6C)16 
 
		 | 
		
			
				 Postano: 12:46 sri, 13. 3. 2013    Naslov:  | 
				            | 
			 
			
				
  | 
			 
			
				| 
                                         #include <stdio.h>
 
 long int sum = 0;
 
 void f(long int n, int niz[], int k, int l)
 {
     int i, novi, temp;
 
     sum += n;
 
     if(l == 0)
         return;
 
     for(i=0; i<k; i++)
     {
         novi = 1;
         temp = n;
         if(k != l && n == 0)
             novi = 0;
         while(temp)
         {
             if((temp % 10) == niz[i])
             {
                 novi = 0;
                 break;
             }
             temp /= 10;
         }
         if(novi) f(10*n + niz[i], niz, k, l-1);
     }
     return;
 }
 
 int main(void)
 {
     int k, niz[9], i, j;
 
     scanf("%d", &k);
 
     for(i=0; i<k; i++)
         scanf("%d", &niz[i]);
 
     for(i=0; i<k-1; i++)
         for(j=i+1; j<k; j++)
             if(niz[i] == niz[j])
             {
                 printf("Greska!");
                 return 0;
             }
 
     f(0, niz, k, k);
 
     printf("%ld", sum);
 
     return 0;
 }
 
 
 imala sam problem ako je 0 jedan od ucitanih znamenki no mislim da je to dobro rjeseno s ovim if (k != l), no za moj primjer, naveden gore sad mi izbaci -neku veliku znamenku, prije je to bio samo broj 20ak puta manji od Vseginog. Molim pomoc 
					
					#include <stdio.h>
 
 
long int sum = 0;
 
 
void f(long int n, int niz[], int k, int l)
 
{
 
    int i, novi, temp;
 
 
    sum += n;
 
 
    if(l == 0)
 
        return;
 
 
    for(i=0; i<k; i++)
 
    {
 
        novi = 1;
 
        temp = n;
 
        if(k != l && n == 0)
 
            novi = 0;
 
        while(temp)
 
        {
 
            if((temp % 10) == niz[i])
 
            {
 
                novi = 0;
 
                break;
 
            }
 
            temp /= 10;
 
        }
 
        if(novi) f(10*n + niz[i], niz, k, l-1);
 
    }
 
    return;
 
}
 
 
int main(void)
 
{
 
    int k, niz[9], i, j;
 
 
    scanf("%d", &k);
 
 
    for(i=0; i<k; i++)
 
        scanf("%d", &niz[i]);
 
 
    for(i=0; i<k-1; i++)
 
        for(j=i+1; j<k; j++)
 
            if(niz[i] == niz[j])
 
            {
 
                printf("Greska!");
 
                return 0;
 
            }
 
 
    f(0, niz, k, k);
 
 
    printf("%ld", sum);
 
 
    return 0;
 
}
 
 
 
imala sam problem ako je 0 jedan od ucitanih znamenki no mislim da je to dobro rjeseno s ovim if (k != l), no za moj primjer, naveden gore sad mi izbaci -neku veliku znamenku, prije je to bio samo broj 20ak puta manji od Vseginog. Molim pomoc
					
 
  
					
					
					
				 | 
			 
		  | 
	
	
		| [Vrh] | 
		 | 
	
	
		vsego Site Admin
  
  
  Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16 
Spol:   
Lokacija: /sbin/init 
		 | 
		
			
				 Postano: 13:33 sri, 13. 3. 2013    Naslov:  | 
				            | 
			 
			
				
  | 
			 
			
				| 
                                         Kod, u skladu s napisanim u mom sigu, necu analizirati.
 
 However, izveo sam ga na svom racunalu i radi dobro (za gornji primjer). Moguce je da imas staro racunalo (32bit) ili vrtis Windows, pa je je [tt]long[/tt] isto sto i [tt]int[/tt] ([url=http://en.wikipedia.org/wiki/Integer_%28computer_science%29#Common_long_integer_sizes]referenca[/url]) i rezultat zato ispadne negativan. Moja masina je 64bit Linux i tu stvar prolazi, a onda bi trebalo i na DGu (jasno, ako program nema neki drugi problem), koji je u tom pogledu jako slican.
 
 Preporucam poslati zadacu aplikaciji i vidjeti sto ce ona reci. 
					
					Kod, u skladu s napisanim u mom sigu, necu analizirati.
 
 
However, izveo sam ga na svom racunalu i radi dobro (za gornji primjer). Moguce je da imas staro racunalo (32bit) ili vrtis Windows, pa je je long isto sto i int (referenca) i rezultat zato ispadne negativan. Moja masina je 64bit Linux i tu stvar prolazi, a onda bi trebalo i na DGu (jasno, ako program nema neki drugi problem), koji je u tom pogledu jako slican.
 
 
Preporucam poslati zadacu aplikaciji i vidjeti sto ce ona reci.
					_________________ 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] | 
		 | 
	
	
		 |