สำหรับใครที่สงสัยว่า ถ้าจะหา Factorial ของ ตัวเลขเยอะๆ จะทำอย่างไร
เพราะ มัีนมี Limit ของ ค่าตัวแปร อยู่
เช่น 366! มีทั้งหมด 781 หลัก
แต่ว่า Double เก็บได้แค่ 1.1 x 10^308 เท่านั้นเอง
แล้วจะทำอย่างไรดีล่ะ?
อันนี้เป็นตัวอย่างของ 100! ครับ
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
เครื่องผมใช้เวลาคำนวณ 0.015 วินาที ครับ
ส่วน 366! ก็นี่เลยครับ
9188111095254496019212176412065202140090580418774645194675369840967804846588863095597762591294093025991679067056119532289819154031153412626361004655299317292397491794124983183190181485863175356339673174577270709354011349841159870162315388021077551574544150339454677263259292741490470278652918758618155319193382176540756099231912808304474174078456156193961001478398647954868692612278257154615836148475874973044173323055630082048837853679900542059105112845394071947192443208478530700194532818459855315620661704950466695965700997551748520475941227743698121112130799760005290512978278155471280205501581277410145813062661991385483143379923345195406432165518340351716868931650203126650444315203993600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
เครื่องผมใช้เวลา 0.031 วินาทีครับ
ส่วนตัวเลขอื่นๆ ก็ปรับแค่โค้ดด้านในโปรแกรม แค่ตัวเดียวครับ
ตัวเลขที่ผมลองมากสุดของผมก็คือ 20000! มากกว่านั้นขี้เกียจลองครับ
เฮ่อๆๆๆ
นี่ครับ โค้ด
[hide=2]
[code]
#include <stdio.h>
#include <time.h>
#define MAXARR 12900
long number[MAXARR];
int main(void) {