Van egy angol nyelvű feladványom, de lehet, hogy rosszul fordítom?
Van egy angol nyelvű feladványom, de lehet, hogy rosszul fordítom:
Write a function addWithSurcharge that adds two amounts with surcharge. For each amount less than or equal to 10, the surcharge is 1. For each amount greater than 10, the surcharge is 2. The call addWithSurcharge(5, 15) should return 23.
JS-ben írtam hozzá egy függvényt. Ha meghívom, a feladvány szerint console.log(addWithSurcharge (5, 15)) jó, console.log(addWithSurcharge (1, 1)) jó, de console.log(addWithSurcharge (10, 10))-re 22-at vár, amit nem értek.
"each amount less than or equal to 10, the surcharge is 1"
vagyis 10-nél kisebb vagy egyenlő számok esetén +1
"each amount greater than 10, the surcharge is 2"
vagyis 10-nél nagyobb számok esetén +2
Tehát:
10-ig +1
11-től +2
Én is így értelmeztem. Ezért ezt írtam hozzá JS-ben:
function addWithSurcharge (x, y){
xy = x +y;
var a = 1;
if ( xy <= 10 ){
a = a +1;
} else {
a = a+2;
}
return xy + a;
}
Mégsem megy, illetve csak részlegesen jó. Pedig ez is hülyeaég, mert a alapból 1. De ha 0, Akkor addWithSurcharge (1, 1) hívásnál 4-et vár, pedig 3 kellene, hogy legyen.
Külön ellenőrizd a számokat:
(5 + 1) + (15 + 2) = 23
(10 + 1) + (10 + 1) = 22
Hát a Te megoldásodnak nem sok köze van a feladathoz.
Helyesen:
function addWithSurcharge (x, y){
var surCharge = 2;
if (x > 10)
surCharge++;
if (y > 10)
surCharge++;
return x + y + surCharge;
}
BTW a surcharge egy szó, nem?
Így furán néz ki a surCharge, kb olyan mintha azt írnád, hogy passWord...
Úgy nézem, a kissé szerencsétlen megfogalmazás zavarhatott meg. Ha közelebbről megnézed, a szövegben az "amount" szó a bemeneti értékeket takarja. Az "amount" szó jelentése "mennyiség", nem "összeg".
"...that adds two amounts with surcharge"
A feladvány készítője ezzel tulajdonképpen definiálta, mire kíván a későbbiekben "amount"-ként hivatkozni. (A bemenő paraméterekre egyenként)
"For each amount..."
Tehát a megadott szabályt a bemenő paraméterekre külön kell alkalmazni, nem pedig azok összegére.
A szabály pedig úgy szól, hogy ha egy bemenő paraméter kisebb vagy egyenlő 10-zel, az 1-gyel fogja megdobni a végeredményt, ha 10-nél nagyobb, akkor kettővel. Mivel két bemenő adat van, ezt a szabályt mindkettőre külön alkalmazni kell, így az összegükhöz végül 2-t, 3-at, vagy 4-et adsz hozzá.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!