30/09/2018, 16:00
Thử kiến thức Javascript của bạn
Continuing the discussion from CodeFights - Become a Code Champion:
https://codefights.com/
Lên vọc thử thì thấy cái này, chắc là dễ với mấy bạn giỏi. Đạt thì bó tay rồi. Ai sửa dùm cái này lỗi chỗ nào vậy?
/**
* @Input: a positive integer
* @Output: sum of cubes of all integers
* from 1 to and including @Input
* @Example:
* sumOfCubes(3) = 36
*/
function sumOfCubes(n) {
var result = 1;
for (var i=1; i <= n; i++){
result += i * i * i;
}
return result;
}
Bài liên quan
result = 0;
1 + 1^3 + 2^3 + 3^3 = 37.
E đoán thử, sửa var result = 1; thành var result = 0; hoặc sửa for (var i=1; i <= n; i++) thành for (var i=2; i <= n; i++)
Không sửa được vòng for chạy từ i= 2 đâu bạn. Sửa result = 0 thôi
uhm, cám ơn bạn, nếu mình đoán k lầm thì sửa for i=2 chỉ đúng với tham số truyền vào n>=2; Truyền vào 0 là sai.
Uhm, cộng thêm ban đầu đề bài người ta đã yêu cầu chạy từ i =1 cho nên không được sửa.
Có câu này rất hay nhé =))
Anh @ltd giải thích em câu trên với. ^^
Bài này bạn đổi (Bỏ vô ide, debug thôi, chứ bt chưa chắc đã làm dc )
Toán tử >> là toán tử dịch bit dùng để thay đổi giá trị của các số được biểu diễn dưới dạng nhị phân. (Chi tiết chắc bạn lên google, mình k biết giải thích sao cho dễ hiểu).Ví dụ số n=16 đc biểu diễn là : 10000 (2^4). Số mũ bắt đầu từ vị trí số thứ tự thứ “0,1,2,3,4” nhá
Vậy n>>1 (Dịch sang phải 1 số. Cứ ngĩ là xóa 1 số cuối đi) = 1000=2^3=8
Vậy n>>2 (Dịch sang phải 2 số) = 100=2^2=4
Vậy n>>3 (Dịch sang phải 3 số) = 10=2^2=2
Vậy n>>4 (Dịch sang phải 4 số) = 1=2^0=1
Vì vậy nếu n là cơ số mũ của 2, thì giá trị cuối cùng fai luôn là 1.(2^0=1). Kết quả này do e debug rồi suy ra, nên không đưa ra đc lời giải đáp thỏa đáng, a @ltd có gì vào bổ sung e với nhé.
Đúng rồi, không hiểu nghĩ gì mà lúc test cứ nghĩ 2^0 = 0. Thế là chẳng hiểu nó sai chỗ nào :)))
cái trang này hay nhưng hình như có mỗi javascipt à, java còn biết tí tí chứ cái này chịu
Thuật toán thì ngôn ngữ nào cũng như nhau mà. Chỉ có phần string thì cái này hơi khác