จาก Post ใน Facebook ของพี่อู

จงเขียนโปรแกรมบวกเลขเฉพาะเลขคี่ที่อยู่ระหว่าง 1 ถึง n ใด ๆ แล้วเอา code มาอวดกัน

พอได้อ่านแล้ว …
มั่นใจได้ว่า นักพัฒนาส่วนใหญ่ต้องคิดในใจว่า
มันหมูมาก ๆ
ก็แค่วน loop จาก 1 ถึง n
ทำการตรวจสอบว่าเป็นเลขคี่หรือไม่
ถ้าใช้ก็บวกไปเรื่อย ๆ
สุดท้ายก็ได้ผลลัพธ์ที่ต้องการ
ผมก็คิดเช่นเดียวกัน !!

เลยลองตั้งคำถามใหม่ ถ้าเราไม่ใช้ loop แบบนี้ละ
อย่าบอกนะว่าจะใช้ …
แน่นอนว่า มันยังคงเป็น loop
ชีวิตเราจะติด loop กับ if ไปถึงไหนกันนะ ?

ดังนั้นจึงลองคิดใหม่หน่อยสิ

เริ่มด้วยการเขียนลงกระดาษนี่แหละ ง่ายสุด
พอเขียนไปเขียนมา ทดเลขไป ๆ มา ๆ
เลยพอเห็นว่ามันมีรูปแบบนี่หว่า
1=1
1+3=4
1+3+5=9
1+3+5+7=16
1+3+5+7+9=25

มันคือ
1 ยกกำลัง 2
2 ยกกำลัง 2
3 ยกกำลัง 2
4 ยกกำลัง 2
5 ยกกำลัง 2

เลขข้างหน้ามันคือจำนวนของเลขคี่นี่หว่า !!
หาจำนวนอย่างไรดีละ ?
ง่าย ๆ ก็ (first + last) / 2 ไงละ
หรือใช้การหารปัดเศษขึ้น

มาถึงตรงนี้ ก็เลยเห็นทางสว่างมาทันที
ทำให้แปลกใจว่า
ทำไมเราไม่เคยรู้เรื่องนี้มาเลยนะ ?
แสดงว่า ไม่ตั้งใจเรียนคณิตศาสตร์แน่นอน

เพื่อความสบายใจเลยลองไปค้นหาดู

พบว่า มันคือเรื่องพื้นฐานทางคณิตศาสตร์เลย
ทั้งการหาผลรวมของตัวเลข
ทั้งการหาผลรวมเลขคี่ …
โลกของคณิตศาสตร์มันสวยงามมากครับ
สามารถพิสูจน์มาจนเป็นสูตรตามนี้เลย

นี่แหละคนไม่ตั้งใจเรียน ช้ำใจมาก ๆ