Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เขียนโปรแกรมใน Python เพื่อกรองตัวเลขอาร์มสตรองในชุดที่กำหนด


สมมติว่าคุณมีอนุกรมและผลการกรองหมายเลขอาร์มสตรอง

original series is
0    153
1    323
2    371
3    420
4    500
dtype: int64
Armstrong numbers are:-
0    153
2    371
dtype: int64

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนด้านล่าง -

  • กำหนดชุด

  • สร้างรายการว่างและตั้งค่าให้วนซ้ำเพื่อเข้าถึงข้อมูลซีรีส์ทั้งหมด

  • ตั้งค่าเริ่มต้นของอาร์มสตรองเป็น 0 และสร้างตัวแปร temp เพื่อเก็บองค์ประกอบชุดทีละรายการ มีการกำหนดไว้ด้านล่าง

l = []
for val in data:
   armstrong = 0
   temp = val
  • สร้างในขณะที่วนซ้ำและตรวจสอบ temp> 0 และคำนวณส่วนที่เหลือโดย temp%10 เพิ่มค่าอาร์มสตรองโดยนำเศษที่เหลือมาหารค่า temp ด้วย 10 จนกว่าจะถึง 0 เพื่อยุติการวนซ้ำ มีการกำหนดไว้ด้านล่าง

while(temp>0):
   rem = temp % 10
   armstrong = armstrong + (rem**3)
   temp = temp // 10
  • ตั้งค่าเงื่อนไขถ้าเปรียบเทียบค่าเดิมกับค่าชั่วคราว หากตรงกัน ให้ผนวกค่าเข้ากับรายการ

if(armstrong==val):
   l.append(val)
  • สุดท้าย ตรวจสอบรายการค่าที่มีอยู่ในชุดข้อมูลโดยใช้ isin() มีการกำหนดไว้ด้านล่าง

data[data.isin(l)]

ตัวอย่าง

มาดูโค้ดด้านล่างเพื่อการใช้งานที่ดีขึ้นกัน −

import pandas as pd
data = pd.Series([153,323,371,420,500])
print("original series is\n", data)
l = []
for val in data:
   armstrong = 0
   temp = val
   while(temp>0):
      rem = temp % 10
      armstrong = armstrong + (rem**3)
      temp = temp // 10
   if(armstrong==val):
      l.append(val)
print("Armstrong numbers are:-")
print(data[data.isin(l)])

ผลลัพธ์

original series is
0    153
1    323
2    371
3    420
4    500
dtype: int64
Armstrong numbers are:-
0    153
2    371
dtype: int64