หาผลรวมของตัวเลขโดยให้รับค่าได้โดยไม่จำกัดจำนวน
โจทย์
จงหาผลรวมของตัวเลขโดยให้รับค่าที่ผู้ใช้ป้อนให้ได้โดยไม่จำกัดจำนวน โดยสูตรคือ
สมการนี้แสดงผลรวมของชุดตัวเลข โดยสามารถอธิบายได้ดังนี้
\(\sum\) (ซิกมา) เป็นสัญลักษณ์ที่ใช้แทนการรวมค่า
\(i=1\) ด้านล่างของ \(\sum\) แสดงค่าเริ่มต้นของตัวนับ \(i\) ซึ่งในที่นี้คือ 1
\(m\) ด้านบนของ \(\sum\) แสดงค่าสุดท้ายของตัวนับ \(i\)
\(a_i\) แสดงสมาชิกทั่วไปในลำดับของตัวเลข โดย \(i\) เป็นตำแหน่งของสมาชิกนั้นๆ
ด้านขวาของเครื่องหมาย = แสดงการบวกกันของสมาชิกทั้งหมดในลำดับ ตั้งแต่ \(a_1\) (สมาชิกตัวแรก) ไปจนถึง \(a_m\) (สมาชิกตัวสุดท้าย)
ดังนั้น สมการนี้จึงหมายถึงการบวกรวมกันของสมาชิกทุกตัวในลำดับ \(a\) ตั้งแต่ตัวแรกจนถึงตัวสุดท้าย
โปรแกรม
a = []
while True:
i = input("Enter a number")
if not i:
break
else:
a.append(int(i))
print("a =", a)
sum = 0
for i in a:
sum += i
print(sum)
คำอธิบายโปรแกรม
โปรแกรมนี้ทำงานตามขั้นตอนดังนี้
สร้างลิสต์ว่าง
a
เพื่อเก็บตัวเลขที่ผู้ใช้ป้อนเริ่มลูป
while True
เพื่อรับค่าจากผู้ใช้ไปเรื่อยๆ:รับค่าจากผู้ใช้ด้วยฟังก์ชัน
input()
และเก็บในตัวแปรi
ถ้าผู้ใช้ไม่ป้อนค่า (กด Enter โดยไม่ใส่ข้อมูล) จะออกจากลูปด้วยคำสั่ง
break
ถ้าผู้ใช้ป้อนค่า จะแปลงค่านั้นเป็นตัวเลขจำนวนเต็มด้วย
int()
และเพิ่มเข้าไปในลิสต์a
ด้วยเมธอดappend()
แสดงลิสต์
a
ที่เก็บตัวเลขทั้งหมดที่ผู้ใช้ป้อนสร้างตัวแปร
sum
และกำหนดค่าเริ่มต้นเป็น 0วนลูปผ่านทุกตัวเลขในลิสต์
a
:บวกแต่ละตัวเลขเข้ากับ
sum
โดยใช้sum += i
แสดงผลรวมทั้งหมดที่คำนวณได้