จาก 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 ไงละ หรือใช้การหารปัดเศษขึ้น มาถึงตรงนี้ ก็เลยเห็นทางสว่างมาทันที ทำให้แปลกใจว่า ทำไมเราไม่เคยรู้เรื่องนี้มาเลยนะ ? แสดงว่า ไม่ตั้งใจเรียนคณิตศาสตร์แน่นอนเพื่อความสบายใจเลยลองไปค้นหาดู
พบว่า มันคือเรื่องพื้นฐานทางคณิตศาสตร์เลย ทั้งการหาผลรวมของตัวเลข ทั้งการหาผลรวมเลขคี่ ... โลกของคณิตศาสตร์มันสวยงามมากครับ สามารถพิสูจน์มาจนเป็นสูตรตามนี้เลยนี่แหละคนไม่ตั้งใจเรียน ช้ำใจมาก ๆ