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

คำนวณอนุกรม n + nn + nnn + ... + n(m ครั้ง) ใน Python

เราจะเขียนโปรแกรมคำนวณผลรวมของอนุกรมที่ตัวเลข n ซ้ำกันเพิ่มขึ้นเรื่อยๆ m ครั้ง

ตัวอย่าง

Input: n=3, m=4
Series: 3 + 33 + 333 + 3333
Output: 3702

Input: n=5, m=5
Series: 5 + 55 + 555 + 5555 + 55555
Output: 61725

อัลกอริทึม

1. กำหนด n และ m
2. ตัวแปร change = n (ค่าในแต่ละพจน์)
3. ตัวแปร s = 0 (ผลรวมสะสม)
4. วนลูป m ครั้ง:
   4.1 บวก change เข้า s
   4.2 อัปเดต change = change * 10 + n (เพิ่มหลัก n ต่อท้าย)
5. พิมพ์ผลรวม s

โค้ดตัวอย่าง

n, m = 3, 4
change = n
s = 0

for i in range(m):
    s += change
    change = change * 10 + n

print(s)

ผลลัพธ์

3702

ตัวอย่างที่ 2

n, m = 5, 5
change = n
s = 0

for i in range(m):
    s += change
    change = change * 10 + n

print(s)

ผลลัพธ์

61725

คำอธิบายตรรกะ

สูตร change = change * 10 + n ทำงานโดยการเลื่อนหลักของ change ไปทางซ้าย 1 ตำแหน่ง (คูณ 10) แล้วบวก n เข้าไปที่หลักหน่วย ทำให้ได้พจน์ถัดไปของอนุกรม

สรุป

อัลกอริทึมนี้คำนวณอนุกรมได้ใน O(m) time และ O(1) space หากมีข้อสงสัย สามารถถามได้ในส่วนความคิดเห็น