Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 13 odgovora
  • 10.815 pregleda

Najnovija ↓

JavaScript zadaci resenje 07.09.2010. u 21:00 · pre 197 meseci #1
Moze li neko ko zna JavaScript da mi resi par zadataka.Pokusavao sam i dan i noc i nema sanse(nisam nikad ranije radio u JS-u).

1.Pomocu JavaScripta prikzati sve brojeve izmedju 1 i 100 ciji je zbir cifara jednak 8.

2.Pomocu JavaScripta prikzati sve brojeve izmedju 100 i 200 koji su deljivi sa 3 a nisu sa 4.

Pomoc,molim vas.
Re: JavaScript zadaci resenje 08.09.2010. u 03:16 · pre 197 meseci #2
1.
Code (javascript):

function getDigitsSum(number) {
  var sum = 0;

  while (number > 0) {

    sum += number % 10;
    number = Math.floor(number / 10);
  }

  return sum;
}

function findNumbers() {

   var results = [];

   for (var i = 1; i <= 100; i++) {
      if (getDigitsSum(i) == 8) {
        results.push(i);
      }
   }

   return results;
}
 


2.
Code (javascript):

function findNumbers() {

   var results = [];

   for (var i = 100; i <= 200; i++) {
     if (i % 3 == 0 && i % 4 != 0) {
       results.push(i);
     }
   }

   return results;
}
 
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: JavaScript zadaci resenje 06.03.2012. u 20:55 · pre 178 meseci #4
evo jos jednog resenja, ukoliko ti treba da se proveri i da li je dobijeni zbir cifara dvocifren broj, pa da li je njihov zbir=8 (89, 98)

//Pomocu JavaScripta prikzati sve brojeve izmedju 1 i 100 ciji je zbir cifara jednak 8.
var skup=[8];

for(var i=10;i<101;i++){
var a=Math.floor(i/10);
var b=i-a*10;
if (a+b===8) skup.push(i);
if (a+b>16) {
var a1=Math.floor((a+b)/10);
var b1=a+b-a1*10;
if (a1+b1===8) skup.push(i);
}
}

console.log(skup);

Re: JavaScript zadaci resenje 01.07.2022. u 14:21 · pre 53 meseca #5
Evo najjednostavnijeg resenja ...

for (let i = 0; i < 20; i++) {
for (let j = 0; j < i; j++) {
if (i + j == 8) {
document.write(i + " i " + j);
document.write("<br>");
}
}
}
Re: JavaScript zadaci resenje 01.07.2022. u 23:01 · pre 53 meseca #6
Ni jedno od ponuđenih rešenja nije algoritamski efikasno. Ako su uslovi jednostavni kao u navedenim zadacima, a opseg mali, stvar lako radi. Ako imaš milion iteracija(slogova, redova) i složenije uslove ovo ne valja uopšte.

1. Najmanji takav broj je 8. Svaki sledeći je za devet veći, a najveći je 80.

2. Najmanji trocifreni broj deljiv sa 3 koji nije deljiv sa 4 je 102. Svaki sledeći je za 12 veći od prethodnog, a najveći je 198.
Sviđa mi se1
Re: JavaScript zadaci resenje 30.07.2022. u 19:13 · pre 52 meseca #7
Nešto si pogrešio pod 2., kako je svaki sledeći za 12 veći, ako na 102 možeš da dodaš 3 i dobiješ 105, koji nije deljiv sa 4, 108 ne može, ali može 111, itd.
U stvari, pošto broj mora da bude deljiv sa 3, ali ne i sa 4, može da se predstavi kao n*12 + 3, n*12+6, n*12+9, pa se potom inkrementira n.
Nadam se da nisam i ja nešto prevideo, pošto sam ceo dan nešto dremljiv :)
Potpis
Blessed are those who can laugh at themselves, for they shall never cease to be amused.
Re: JavaScript zadaci resenje 03.08.2022. u 13:10 · pre 52 meseca #8
1.
Code:

function ZbirCigara(odbr,dobr,zbir) {
     rez =[];
     for (i=odbr;i<=dobr;i++){
       let str = i.toString();
       if(str.split("").reduce((a,b)=>Number(a)+Number(b))==zbir) rez.push(i);
      }
     return rez;
    }

2.
Code:

    function Deljivi3ne4(odbr,dobr) {
        rez =[];
        for (i=odbr;i<=dobr;i++){
          let br1 = i%3;
          let br2 = i%4;
          if(br1===0 && br2!==0) rez.push(i);
         }
        return rez;
       }
Re: JavaScript zadaci resenje 03.08.2022. u 17:18 · pre 52 meseca #9
Citat:
mjanjic:
Nešto si pogrešio pod 2...


Izgleda da jesam, eto novog malog izazova.

P.S. Kako koristite [code] tagove da obojite kod?
Re: JavaScript zadaci resenje 03.08.2022. u 20:00 · pre 52 meseca #10
Citat:
Kako koristite [code] tagove da obojite kod?


Sa [code:javascript] za JavaScript.
Re: JavaScript zadaci resenje 09.08.2022. u 14:44 · pre 51 mesec #12
Citat:
Milan Milosevic:
2.
Code (javascript):

    function Deljivi3ne4(odbr,dobr) {
        rez =[];
        for (i=odbr;i<=dobr;i++){
          let br1 = i%3;
          let br2 = i%4;
          if(br1===0 && br2!==0) rez.push(i);
         }
        return rez;
       }
 

Već smo pominjali, radi, ali neefikasno, jer proverava za svaki broj, a nema potrebe za tim. Slično kao kad proveravaš da li je broj prost pa tražiš delioce od 2 do korena iz tog broja, a u stvari može efikasnije (umesto da se ide po "n", ide se po "6n", možeš da nađeš na internetu primer).

Nije problem kad su manji brojevi, ali ako su ogromni...
Potpis
Blessed are those who can laugh at themselves, for they shall never cease to be amused.
Re: JavaScript zadaci resenje 09.08.2022. u 21:49 · pre 51 mesec
izmenjeno 1 put, poslednji put Milan Milosevic 09.08.2022. u 22:12
  1. Milan Milosevic09.08.2022. u 22:12zapis iz teksta poruke
#13
Citat:
mjanjic: Već smo pominjali, radi, ali neefikasno, jer proverava za svaki broj, a nema potrebe za tim. Slično kao kad proveravaš da li je broj prost pa tražiš delioce od 2 do korena iz tog broja, a u stvari može efikasnije (umesto da se ide po "n", ide se po "6n", možeš da nađeš na internetu primer).

Nije problem kad su manji brojevi, ali ako su ogromni...

Hvala mjanjic.
Sigurno postoje neka pravila kad je broj deljiv sa 3 i sa 4. Radi se to u osnovnoj školi ali nisam razmišljao o tome. Gledao sam brzo rešenje.

Ovo je po meni optimalno rešenje. Ne vidim da može da se uradi nešto brže.
Code:

function Deljivi3ne4(odbr,dobr) {
   rez =[];
   for (i=odbr+3-odbr%3;i<=dobr;i+=3){
     if( i%4!==0) rez.push(i);
    }
   return rez;
  }
Re: JavaScript zadaci resenje 12.08.2022. u 14:53 · pre 51 mesec #14
Pa, realno, za deljivost brojem 3 verovatno bi bilo najbrže da se saberu cifre (neki jezici imaju veoma efikasne načine da se to odradi), sigurno je daleko brže za velike brojeve nego da se proverava deljivost, mada, eto, moglo bi da se testira :)

Ali, za deljivost brojem 2 moralo bi da se testira da li je deljiv sa 4, mada kod nekih jezika postoji trik - deljenje sa 2 je u stvari pomeranje cifara za jedno mesto u desno u binarnom brojnom sistemu, što je moguće samo ako je poslednja cifra NULA - dakle, za deljivost sa 4 bilo bi dovoljno proveriti da li su poslednja 2 bita NULA :)))
Ako je to "malo" teže izvesti u nekim modernim jezicima (u C-u je podržano, i često se koristi kod množenja sa 2, samo se bitovi "pomere" u levo za jedno mesto), dovoljno je u principu proveriti u dekadnom brojnom sistemu samo deljivost broja koga čine poslednje 2 cifre, jer 100, 1000, itd. su deljivi sa 4.
Potpis
Blessed are those who can laugh at themselves, for they shall never cease to be amused.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme