主题:求 2008!=?
木鱼凡心
[专家分:70] 发布于 2008-05-28 20:20:00
在编程时突然遇到个问题
求 2008!=?
提醒哦!由于受变量取值范围的限制
即使用 long double 最多也只能 到 170!
回复列表 (共13个回复)
沙发
林杰杰 [专家分:8970] 发布于 2008-05-28 21:15:00
2008!=
864364185767107020525555785744913866947705402855234129109030596928161811303492896545295026975091953842311724077984806762104730502546536916998852796192459528225940127343908124587483532725648186983060404687266866553552532405238129350157966948127554609294966898648555268016524062496297607783419200275359981112108455859643122456934300123950006614894499281610063080338717283701458422468614357727083350386220050882657380016601106865382455914427922410958712285196838369552216665910823010007114025783166152459125033034810634843601942911554750952514795325689852018437155924752965635239656879040140122771356935633369586918363194441179970549468502337120294349784957339900902264265021865892050921987064204913590842661717039968938029081887572750037054519668987544266265405040228775913400135373608163926252855502055566744691545350144206263078454739975582265658526477831741374670091370945933938575137486260427435459820116964063451444413994465510210073774293980275880250784149026189258771741091787136165858838131274412158177445379848553987227287318350309788304251964013702899914772698860353967990718794826950650012362115
板凳
林杰杰 [专家分:8970] 发布于 2008-05-28 21:15:00
接上去:
51469108130256145975512878144064434834334373086710590845710751358220602437618170589142947688283381784656639872244935255566827664460508479975701579529434757642065678947395386984845744346685582774364492480219196423141762909953312579045507499275924487172047850688893904805496951106713573426205804974787275962863122614649846513477956582766956906773049290860520738459517136292090770680593948010505996068102373947936258241209566250186095013872603462999109326053258345530862617052441013778446303287936991791763742984739361380924623277280331788303538360759304344858941257488019030605336589732950575604342817992071219794527370640861123238301730744401848545940145960901606555558946416648902885833103387278242425171929954205560372493987394263644594298235046185276630553428253214957271925962381310501114090642524593399720427280264840254600012176086327745759164130116692429880645249925674526572534506135896743526501234409624632090110527982616742323819443555752358238517825021925542073290133320668020487717870620306588951645434150036246170781664054813282131947168311550967858719216665160767489074971198744876106919336680584473613772717855991969058562481629694565905839682691742925454042012086650317697125503855691538838461035764481347803239635098795473177512906611484431263082994495195498377863721609890444127503572207700153391551850136305608035222614291380584050537056119749476816087800085245882225242031698925903699326408071302699879908568007093205806603442944961861973054452259367641108753128647553662101777252448401275590884240761995287181963339849956100618224018569062674675529709923431907194990638116801717198601285338686641138617095674661597070763512310914724726885367302158783017861151308558718642047626567202879059551320533807984703900791760989115941055636615657982373825335214695344513876739778204112649673879863660663444263026226169651341794693396516454208886956564801050963513875083227186461611789287959865051487896052042016184267434161795555478573262329730168025408483100818310699279269178637790986558033176293101527031718460572398330918449944245930209723927758692971617393894624459137371962064966418709908292002436251528962853185187569850000279031611239980870151403162689999383235270121952409244998779461369834591452550130254268916803260548508733278035082530876288879687645828769539752771547700615922352572203491341721741256362607822359501863305940628945023919326327437252032293952678761393051391203518166386006199444263128689308874660786932602667068832148526198024738938396246779749844904853648630977522063013865194417468043786501356034251922914016707357204620764153568601821272169208957251576372861357091345967702160527466166478955380088730675601459205206634269786077235350615235760626039325950025907729164095058314396814856148234936360416333032988944406160131236912294382693996216039370753560701861595697879975938657188335301827507508063645396334348681402713815806614829629274666329563013061479954135054973515426036936501677961592367155368024381450891251325410477205396327017775256491946647075720779256342567731928509122912333044525105712698880192889400166721123125103407568627276005753706590784666942672410697818381317060772523164522571635913108879531066003544735162494713021204409260660739852726909076958910528004744856601625449491251362902756417192030133778218470833206299701640176132133643851413170004909388617805775572654075230351717777713864837969537814491762741307511008896330551403167679284720590826817969636536910377271219141827668305763171501554820721580934151715242772452696270578881462563888423252706666425754509263011477580486648310418050276983946893813040436904052974195883249053853674931443289555686148177933625844678119361892105072224322463807751282854217610167683146136685169605916204780758319952300084321871544913787679792669196213689218641256062163432971676954007227178698431081344335589082515718828012892951669544226914300286838317645800817213672386929031354288989112296322409203785165254842566916469513223138134378137518774407909023800609231268275864827640124213894539054953100800469952255731863332460263060949662017734372213076687369778402830809043730023746066167836523101149707072303033132800537988641184751400091504560375275821465600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3 楼
muyucom1 [专家分:50] 发布于 2008-05-28 21:44:00
楼上的是自己定义变量类型的吗
4 楼
林杰杰 [专家分:8970] 发布于 2008-05-28 22:30:00
我是用Python算的。。。
5 楼
木鱼凡心 [专家分:70] 发布于 2008-05-28 23:02:00
才答案啊
我要方法
6 楼
界水乘风 [专家分:10] 发布于 2008-05-29 12:57:00
#include <stdio.h>
#define TOTAL_SIZE 5000
#define N 2008
#define MASK 0x0000FFFF
typedef unsigned short UINT16;
typedef unsigned int UINT32;
int main()
{
UINT16 total[TOTAL_SIZE];
bool flag[TOTAL_SIZE];
total[0] = 1;
flag[0] = true;
for(UINT16 i=1; i<TOTAL_SIZE; i++)
{
total[i] = 0;
flag[i] = false;
}
if(N < 0)
{
printf("The input value <0, invalid!\n");
return 0;
}
if((N == 0)||(N == 1))
{
printf("%d! = 1\n", N);
return 1;
}
for(UINT16 i=1; i<=N; i++)
{
UINT32 JinWei = 0; //add to the higher node
UINT32 temp_total;
for(UINT16 j=0; flag[j]; j++)
{
temp_total = total[j] * i + JinWei;
if(temp_total > 9999)
{
total[j] = temp_total % 10000;
JinWei = temp_total / 10000;
if(flag[j+1] == false) flag[j+1] = true;
}
else
{
total[j] = temp_total;
JinWei = 0;
}
}
}
printf("%d! = \n", N);
UINT16 print_loop = TOTAL_SIZE-1;
while(flag[print_loop] == false)print_loop--;
if(print_loop>0)
{
printf("%u", total[print_loop--]);
while(print_loop > 0) printf("%0u", total[print_loop--]);
printf("%04u\n", total[print_loop]);
}
else
{
printf("%u\n", total[print_loop]);
}
return 1;
}
7 楼
界水乘风 [专家分:10] 发布于 2008-05-29 12:59:00
如果要算更大的话,自己改TOTAL_SIZE
8 楼
sageking2 [专家分:200] 发布于 2008-06-01 18:40:00
#include<stdio.h>
#define N 2008
int main()
{
long i,j,Jin=0,Wei=1,tmp;/*Jin表示进位,Wei表示总共的位数*/
long s[5000]={1};
for(i=1;i<N;i++)
{
Jin=0;
for(j=0;j<Wei;j++)
{
tmp=Jin+(s[j]*i);
s[j]=tmp%10000;
Jin=tmp/10000; }
if(Jin>0)
{
Wei++;
s[Wei-1]=Jin;
}
}
printf("%ld",s[Wei-1]);
for(i=Wei-2;i>=0;i--)
{
printf("%04ld",s[i]);
}
printf("\n");
getchar();
return 0;
}
/*每4位存入数组就行了*/
9 楼
imjohnzj [专家分:1490] 发布于 2008-06-04 12:28:00
楼主,对不起了。借你的主题做了测试。
能看到下面的FLASH吗?
[flash]http://imjohnzj.xinwen520.net/acmp.swf[/flash]
10 楼
木鱼凡心 [专家分:70] 发布于 2011-11-10 17:33:00
你很懒 [em7]
我来回复