01/10/2018, 09:44
Nhờ check code tính giai thừa của 1 số trong Javascript
Hi all, e đang học cách tính giai thừa của 1 số bằng while loop, code 1 là e làm, code 2 là cách giải của người ta, 2 cái đều ra kết quả. Nhưng mọi người cho e hỏi ở code 1, e viết như vậy có ổn không ạ, hay vì trường hợp này hên nên ra đúng, nếu dùng để giải bài khác thì k được. Vì ở code 2 có thêm phần if (num === 0 || num === 1) { return 1;} . Thanks
function factorialize(num) {
// code 1
var sum = 1;
var i = 1;
while(i <= num) {
sum *= i;
i++;
}
return sum;
//code 2
var result = num;
if (num === 0 || num === 1) {
return 1;
}
while(num > 1) {
num--;
result *= num;
}
return result;
}
Bài liên quan
Cách 1 là bạn tính giai thừa từ 1 -> n, cách 2 là tính giai thừa từ n -> 0. Cách 1 so với cách 2 thì phải tốn bộ nhớ lưu thêm 1 biến i với chưa có trường hợp 0!. 0! cũng = 1
đúng là chưa có trường hợp 0! nhưng sao nếu gọi factorialize(0) thì vẫn ra 1 v bạn
tại bạn gán s = 1 ở đầu rồi nên nó vẫn ra 1
à, hiểu. V còn tính giai thừa từ 0->n vs từ n -> 0 thì cũng ra kết quả như nhau thôi phải k b
ukm đúng rồi. nhưng cách từ 0 -> n thì phải tạo thêm 1 biến nữa
ok, thanks bạn nhé
Sẵn đây cho mình hỏi cái này ngoài lề topic tí nha. Ternary operator í bạn, khi nào thì dùng ? : , khi nào thì dùng if v, hay mún xài nào thì xài. Vs cái đó dùng trong C hay trong JS có dùng tới hông
2 cái đấy hầu như là giống nhau. khi nào dùng được thì dùng thôi :v mà dùng cái ? : thì nhìn nó có vẻ cao siêu hơn 1 tí. cái ? : cũng giống cái if hầu như ngôn ngữ nào cũng dùng được
uhm, hiểu rồi, thanks lần nữa nhé :))