Kết quả cho việc nối các số ma thuật từ 1 đến 100 là,
magic number series: 0 1 1 10 2 19 3 28 4 37 5 46 6 55 7 64 8 73 9 82 10 91 11 100
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các cách tiếp cận dưới đây -
Giải pháp 1
-
Tạo khả năng hiểu danh sách để nối 1 đến 100 giá trị vào danh sách ls.
ls = [i for i in range(1,101)]
-
Áp dụng hàm lọc lambda để lưu trữ các giá trị chia hết cho 9 kết quả là 1.
l = list(filter(lambda i:i%9==1,ls))
-
Tạo một chuỗi từ danh sách l.
pd.Series(l)
Ví dụ
Hãy xem đoạn mã dưới đây để hiểu rõ hơn,
import pandas as pd ls = [i for i in range(1,101)] l = list(filter(lambda i:i%9==1,ls)) print("magic number series:\n",pd.Series(l))
Đầu ra
magic number series: 0 1 1 10 2 19 3 28 4 37 5 46 6 55 7 64 8 73 9 82 10 91 11 100
Giải pháp 2
-
Tạo một danh sách trống
-
Đặt cho phạm vi vòng lặp từ 1 đến 101 và đặt digit_sum là 0
for i in range(1,101): digit_sum = 0
-
Gán các giá trị của i cho giá trị tạm thời để không thể thay đổi giá trị của i.
-
Đặt điều kiện vòng lặp while là tạm thời> 0
-
Tính phần dư và số_sum như sau,
while(temp>0): rem = temp % 10 digit_sum = digit_sum + rem temp = temp // 10
-
Cuối cùng đặt điều kiện if để kiểm tra giá trị digit_sum là 1 hoặc 10. Nếu đúng thì nối các giá trị vào danh sách
if(digit_sum==1 or digit_sum==10): l.append(i)
-
Cuối cùng, tạo một chuỗi từ danh sách.
Ví dụ
Hãy kiểm tra đoạn mã sau để hiểu rõ hơn -
import pandas as pd l = [] for i in range(1,101): digit_sum = 0 temp = i while(temp>0): rem = temp % 10 digit_sum = digit_sum + rem temp = temp // 10 if(digit_sum==1 or digit_sum==10): l.append(i) print("magic number series:\n",pd.Series(l))
Đầu ra
magic number series: 0 1 1 10 2 19 3 28 4 37 5 46 6 55 7 64 8 73 9 82 10 91 11 100