ช่วยเขียนโปรแกรมภาษา C หน่อยครับ

คือผมเขียนโปรแกรมหาค่าแฟกทอเรียลครับ มันสามารถเพิ่มลูกเล่นหรือเขียนอะไรเพิ่มเติมให้ดูสมบรูณ์ขึ้นอีกได้มั้ยครับ 
อมยิ้ม04อมยิ้ม07
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 1
- เล่น godbolt.org และ wandbox.org เพื่อใช้คอมไพเลอร์รุ่นล่าสุด  โดยไม่ต้องลงในเครื่อง ไม่ต้อง maintain  
** g++/clang++ ในลินุกซ์ไม่มี conio.h ครับ    [Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
- ลองเขียนเพื่อหาคำตอบว่า n เท่าไหร่จะทำให้ int และ unsigned long (uint64_t) เกิด overflow  ได้คำตอบที่ผิด
** สังเกตความแตกต่างของ long ในวินโดวส์และลินุกส์  และทำไมควรใช้ int64_t แทน
- ถ้าเรียนฟังก์ชันแล้ว  ลองเปลี่ยนลูปเป็น tail call recursive  เปรียบเทียบ machine code ที่ผ่าน -O2 ว่าเหมือนกันหรือไม่  [Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
- เปลี่ยนฟังก์ชันเป็น modern c++ lambda    [Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
- ถ้าเรียน builtin array และ modulo แล้ว  ลองคูณตาม radix แบบประถมเพื่อหา 52!  ด้วยหลักแบบฐานสิบ (หลักหนึ่งมี 0-9)
- ถ้าเรียนเรื่อง bitwise shift แล้ว  ลองคูณแบบใช้หลักแบบฐาน 256  (หลักหนึ่งมี 0 - FF)  แล้วพอจะแสดงผล  ค่อยแปลงผลลัพธ์กลับมาแสดงผลด้วยหลักแบบฐานสิบอีกที
- ถ้าเรียนเรื่อง pointer แล้ว   ทำข้างบนด้วย standard algorithm std::for_each และ modern c++ lambda
- stand on shoulders of giants  แล้วจะมัวมานั่งทำเองให้เหนื่อยทำไม  เมื่อมี GMP, Boost ให้เล่น
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่