Làm cách nào để lấy tổng các chữ số trong JavaScript?

Các số nguyên dương 1, 2, 3,. được gọi là số tự nhiên

ví dụ 1. Tổng các số tự nhiên sử dụng vòng lặp

// program to display the sum of natural numbers

// take input from the user
const number = parseInt(prompt('Enter a positive integer: '));

let sum = 0;

// looping from i = 1 to number
// in each iteration, i is increased by 1
for (let i = 1; i <= number; i++) {
    sum += i;
}

console.log('The sum of natural numbers:', sum);

đầu ra

Enter a positive integer: 100
The sum of natural numbers: 5050

Trong chương trình trên, người dùng được nhắc nhập một số

Enter a positive integer: 100
The sum of natural numbers: 5050
1 chuyển đổi giá trị chuỗi số thành giá trị số nguyên

Vòng lặp

Enter a positive integer: 100
The sum of natural numbers: 5050
2 được sử dụng để tìm tổng các số tự nhiên cho đến số do người dùng cung cấp

  • Giá trị của tổng ban đầu là 0
  • Sau đó, một vòng lặp
    Enter a positive integer: 100
    The sum of natural numbers: 5050
    2 được sử dụng để lặp lại từ
    Enter a positive integer: 100
    The sum of natural numbers: 5050
    4
  • Trong mỗi lần lặp, i được thêm vào tổng và giá trị của
    Enter a positive integer: 100
    The sum of natural numbers: 5050
    5 được tăng thêm 1
  • Khi tôi trở thành 101, điều kiện kiểm tra là
    Enter a positive integer: 100
    The sum of natural numbers: 5050
    6 và tổng sẽ bằng 0 + 1 + 2 +. + 100

ví dụ 2. Tính tổng các số tự nhiên bằng vòng lặp while

// program to display the sum of natural numbers

// take input from the user
const number = parseInt(prompt('Enter a positive integer: '));

let sum = 0, i = 1;

// looping from i = 1 to number
while(i <= number) {
    sum += i;
    i++;
}

console.log('The sum of natural numbers:', sum);

đầu ra

Enter a positive integer: 100
The sum of natural numbers: 5050

Trong chương trình trên, người dùng được nhắc nhập một số

Vòng lặp

Enter a positive integer: 100
The sum of natural numbers: 5050
0 dùng để tìm tổng các số tự nhiên

  • Vòng lặp
    Enter a positive integer: 100
    The sum of natural numbers: 5050
    0 tiếp tục cho đến khi số nhỏ hơn hoặc bằng 100
  • Trong mỗi lần lặp, i được thêm vào biến
    Enter a positive integer: 100
    The sum of natural numbers: 5050
    2 và giá trị của i tăng thêm 1
  • Khi tôi trở thành 101, điều kiện kiểm tra là
    Enter a positive integer: 100
    The sum of natural numbers: 5050
    6 và tổng sẽ bằng 0 + 1 + 2 +. + 100

Tôi là Noob, cách tiếp cận đầu tiên của tôi là biến số thành một chuỗi, lấy từng chữ số, biến nó trở lại thành số và thao tác theo cách đó

var subtractProductAndSum = function(n) {    //turn digit into string
let num = n.toString()
for (let i = 0; i < num.length; i++) {
//grab digit, turn it back into number
let number = parseInt(num[i])
//operate on number to ...
//get product
//get sum
}
return product - sum;
}

Tôi đã có rất nhiều bài tập cập nhật một tổng từ bên trong một vòng lặp

________số 8

Bạn không thể sử dụng cùng một mẫu để cập nhật sản phẩm;

Thay vào đó, khi muốn cập nhật sản phẩm, bạn có thể bắt đầu với giá trị ban đầu là 1

product = 1for(let num in array){
sum *= num
}

(*= có phải là một thứ không? Tôi đã thử và nó hoạt động…)

Khi tôi điền vào chỗ trống, tôi đã kết thúc với điều này

Điều này hoạt động, nhưng không quá nhanh

Thử lần thứ hai. toán, toán, toán (không có chuỗi)

Hãy xem liệu chúng ta có thể tăng tốc độ đó bằng cách tránh chuỗi hoàn toàn không

Trong toán học, nếu bạn muốn lấy các chữ số từ một số, bạn có thể bắt đầu lấy chúng từ hàng đơn vị bằng cách sử dụng Toán tử phần dư của javaScript, được biết đến trong các ngôn ngữ khác là modulo. Đây là cách nó hoạt động

Enter a positive integer: 100
The sum of natural numbers: 5050
0

Miễn là một số có ít nhất hai vị trí, bạn có thể lấy chữ số ở cột đơn vị bằng cách chạy ____18

Làm thế nào bạn sẽ tiến hành từ đó để có được chữ số trong cột hàng chục?

Hãy giải nén nó

  1. Chúng tôi bắt đầu với một số có ba chữ số và chạy toán tử Số dư, trả về 4, số trong cột đơn vị
  2. Chúng tôi chia số của chúng tôi cho 10 (và làm tròn xuống, sử dụng javaScript's
    Enter a positive integer: 100
    The sum of natural numbers: 5050
    9)
  3. Chúng tôi chạy
    // program to display the sum of natural numbers
    
    // take input from the user
    const number = parseInt(prompt('Enter a positive integer: '));
    
    let sum = 0, i = 1;
    
    // looping from i = 1 to number
    while(i <= number) {
        sum += i;
        i++;
    }
    
    console.log('The sum of natural numbers:', sum);
    0 trên kết quả từ bước #2, kết quả là 3, số trong cột hàng chục
  4. Ta lặp lại bước số 2 và 3 để lấy số ở cột hàng trăm

Đây là những gì nó trông giống như trong mã

và nó nhanh hơn

cảm ơn bạn. Victor Wang vì đã đăng 'giải pháp JS sạch' của mình trên LeetCode

Bạn có thể chơi với mã ở đây khi thay thế. nó và bạn có thể thấy mã thực thi trực tiếp tại đây trên PythonTutor. com