ผลลัพธ์สำหรับการต่อท้ายเลขมหัศจรรย์จาก 1 ถึง 100 คือ
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
เพื่อแก้ปัญหานี้ เราจะปฏิบัติตามแนวทางด้านล่าง -
โซลูชันที่ 1
-
สร้างความเข้าใจรายการเพื่อผนวกค่า 1 ถึง 100 ลงในรายการ ls
ls = [i for i in range(1,101)]
-
ใช้ฟังก์ชันตัวกรองแลมบ์ดาเพื่อเก็บค่าที่หารด้วย 9 ผลลัพธ์ได้เท่ากับ 1
l = list(filter(lambda i:i%9==1,ls))
-
สร้างซีรีส์จากรายการ l.
pd.Series(l)
ตัวอย่าง
มาดูโค้ดด้านล่างกันเพื่อความเข้าใจที่ดีขึ้น
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))
ผลลัพธ์
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
โซลูชันที่ 2
-
สร้างรายการว่าง
-
ตั้งค่าช่วงลูปตั้งแต่ 1 ถึง 101 และตั้งค่า digit_sum เป็น 0
for i in range(1,101): digit_sum = 0
-
กำหนดค่า i เป็นค่าชั่วคราว เพื่อไม่ให้เปลี่ยนค่า i
-
ตั้งค่าในขณะที่เงื่อนไขวนรอบเป็น temp> 0
-
คำนวณส่วนที่เหลือและ digit_sum ดังนี้
while(temp>0): rem = temp % 10 digit_sum = digit_sum + rem temp = temp // 10
-
สุดท้ายตั้งค่า if condition ให้ตรวจสอบค่า digit_sum อย่างใดอย่างหนึ่งหรือ 10 ถ้าเป็นจริง ให้ผนวกค่าในรายการ
if(digit_sum==1 or digit_sum==10): l.append(i)
-
สุดท้าย สร้างซีรีส์จากรายการ
ตัวอย่าง
มาตรวจสอบรหัสต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
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))
ผลลัพธ์
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