Dãy số 10, 3, 6, 10, 6, 12, 10, 9, 18, 19, 21 – Lập trình trong Python và Scratch
Dãy số 10, 3, 6, 10, 6, 12, 10, 9, 18, 19, 21 – Lập trình trong Python và Scratch
Quy luật của dãy số
Dãy số sẽ được xác định như sau:
- Số thứ nhất (n = 1) trong dãy là 10.
- Với mỗi số thứ i (i > 1), số đó sẽ bằng tổng các chữ số của số thứ i – 1 cộng thêm với vị trí i.
Đoạn code trong Python tìm số thứ n của dãy số
def find_number(n): if n == 1: return 10 prev_number = 10 current_number = 0 for i in range(2, n+1): sum_of_digits = sum(int(digit) for digit in str(prev_number)) current_number = sum_of_digits + i prev_number = current_number return current_number # Ví dụ sử dụng n = int(input("Nhập vào số n: ")) result = find_number(n) print(f"Số thứ {n} trong dãy là: {result}")
giải thích cách code hoạt động:
- Hàm
find_number
nhận một tham sốn
, đại diện cho số thứ tự trong dãy mà chúng ta muốn tìm. - Trường hợp đặc biệt, nếu
n
là 1, ta trả về giá trị 10, vì số thứ nhất quy định là 10. - Khởi tạo biến
prev_number
với giá trị ban đầu là 10, đại diện cho số thứ hai trong dãy. - Khởi tạo biến
current_number
với giá trị ban đầu là 0. - Sử dụng vòng lặp for từ 2 đến
n
(bao gồm) để tính toán số thứn
. - Trong mỗi lần lặp, tính tổng các chữ số của
prev_number
bằng cách chuyển đổiprev_number
thành chuỗi, rồi lấy từng chữ số thành số nguyên và tính tổng chúng. - Cộng tổng chữ số với
i
(vị trí hiện tại) để tạo ra giá trị mới chocurrent_number
. - Gán
current_number
choprev_number
để sử dụng cho vòng lặp tiếp theo. - Sau khi vòng lặp kết thúc,
current_number
sẽ chứa giá trị của số thứn
. - Trả về
current_number
.
Trong ví dụ sử dụng, chúng ta gọi hàm find_number
với n
được nhập vào từ bàn phím và lưu kết quả vào biến result
. Cuối cùng, chúng ta in ra màn hình số thứ n trong dãy.
Dòng code sum_of_digits = sum(int(digit) for digit in str(prev_number))
được sử dụng để tính tổng các chữ số của số thứ i – 1 trong dãy. Dưới đây là giải thích cụ thể về dòng code này:
str(prev_number)
: Chuyển đổi sốprev_number
thành một chuỗi ký tự để có thể truy cập từng chữ số riêng lẻ của nó.for digit in str(prev_number)
: Với mỗi ký tự trong chuỗi sốprev_number
, ta gán ký tự đó vào biếndigit
.int(digit)
: Chuyển đổi ký tự thành một số nguyên để có thể tính toán.sum(int(digit) for digit in str(prev_number))
: Sử dụng biểu thức generator để lấy từng số nguyên từ chuỗi ký tựprev_number
, sau đó tính tổng của các số đó.
Ví dụ, giả sử prev_number
có giá trị là 78. Khi chạy dòng code trên, ta sẽ thực hiện các bước sau:
- Chuyển đổi
prev_number
thành chuỗi:"78"
. - Dùng vòng lặp
for
để truy cập từng ký tự:"7"
và"8"
. - Chuyển đổi ký tự thành số nguyên:
7
và8
. - Tính tổng các số nguyên:
7 + 8 = 15
.
Kết quả là sum_of_digits
sẽ lưu giá trị 15, tức là tổng các chữ số của số thứ i – 1 trong dãy.
Hy vọng rằng phân tích trên giúp bạn hiểu rõ hơn về cách code hoạt động.
Lập trình Scratch tìm số thứ n trong dãy số 10, 3, 6, 10, 6, 12, 10, 9, 18, 19, 21
Đây là một chương trình Scratch để tính toán số thứ n trong dãy theo quy luật đã cho:
- Mở trình duyệt và truy cập vào trang web Scratch (scratch.mit.edu).
- Tạo một dự án mới và xóa nhân vật mặc định trong sân khấu.
- Tạo một biến “n” để lưu giá trị số n trong dãy.
- Tạo một biến “currentNumber” để lưu giá trị của số thứ n trong dãy.
- Đặt giá trị ban đầu của “n” bằng cách sử dụng khối “đặt [n] bằng [giá trị] ”.
- Đặt giá trị ban đầu của “currentNumber” là 10 (số thứ nhất trong dãy).
-
Kéo và thả các khối vào khu vực kịch bản theo thứ tự sau:
- Khối “này được nhấn” -> “đặt [currentNumber] bằng 10”
-
Khối “khi được nhấn vào” -> “đặt [i] bằng 2” và “lặp lại (n-1) lần”
- Khối “đặt [sumOfDigits] bằng 0”
-
Khối “đặt [j] bằng 1” và “lặp lại (số chữ số của [currentNumber] ) lần”
- Khối “đặt [digit] bằng [chữ số thứ j trong [currentNumber] ]”
- Khối “đặt [sumOfDigits] bằng [sumOfDigits] + [digit] ”
- Khối “đặt [j] bằng [j] + 1”
- Khối “đặt [currentNumber] bằng [sumOfDigits] + [i] ”
- Khối “đặt [i] bằng [i] + 1”
- Khối “hiển thị [currentNumber] ”
- Nhấn vào cờ màu xanh để chạy chương trình.
- Nhập giá trị của n vào biến “n” bằng cách sử dụng khối “đặt [n] bằng [giá trị] ”.
- Nhấn vào cờ màu xanh và chương trình sẽ tính và hiển thị số thứ n trong dãy.
Lưu ý: Để lấy chữ số thứ j của một số trong Scratch, bạn có thể chuyển đổi số đó thành một chuỗi, sau đó sử dụng khối “chữ số thứ j trong [chuỗi] ” và chuyển đổi kết quả trở lại thành số nguyên bằng khối “chuyển đổi [chuỗi] thành số”.
Hy vọng rằng hướng dẫn trên sẽ giúp bạn tạo ra chương trình Scratch để tính toán số thứ n trong dãy theo quy luật đã cho.