Computer >> Máy Tính >  >> Lập trình >> Python

Viết một chương trình để nối các Số ma thuật từ 1 đến 100 trong một chuỗi Gấu trúc

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