Problem 1002 严格来说应该是这样的

hoodlum1980 | 2016-05-16 00:21:10Author
可惜需要点时间准备这些字符串的初始化内容,错过提交时间截止点了,无法验证结果是不是能节省些内存。把常量字符串放在只读数据段。 #include <stdio.h> int main() { int N, i, pos; const char *digits = "1235813213455891442333776109871597258441816765109461771128657463" "6875025121393196418317811514229832040134626921783093524578570288" "7922746514930352241578173908816963245986102334155165580141267914" "2964334944377014087331134903170183631190329712150734807526976777" "8742049125862690252036501107432951280099533162911738626757127213" "9583862445225851433717365435296162591286729879956722026041154800" "8755920250473078196140527395378816557470319842106102098577231716" "7680177565277778900352884494557021285372723460248141117669030460" "9941903924907091353080615211701294984540118792648065155330493931" "3049695449286572111485077978050341645462290670755279397008847578" "9443943237914641447233402467622123416728348467685378890623731439" "0661305790721611591991948530947554971605006438163670882596954969" "1112258542019614072748967367989163763861225811000877783661019311" "7799794160047141892880067194370816120466004661037553030975401138" "0474634642912200160415121876738197402742198682231673194043463499" "0099905516807088548583230728362114348984842297713530185234470674" "6049218922995834555169026354224848179261915075573147844013817084" "1019273726921930789991761500520536206896083277242789322839997508" "2453392841376460687116573063563069930068462481831028472075761371" "7413913166410277506205636620962692574850823428107600943566776258" "8548447381057049252476708912581411411405930102594397055221918455" "1825793033096366333298611126818977066918552483162952612010163284" "8857817740794309872302034371264937032042997393488322204671111147" "3984623691759331164814351698201718008153583592549909666408718408" "6700073985079486580519211402836665349891529892376122698374052006" "8639569756823672674070550577925589944359425114757512643212875125" "9615185546301842246877456815557697022053106568164969325172882568" "3549488150424261407305795904080553832073954659034621587630041982" "4982151066340417491710595814572169172537503907934063779707038427" "9171545657105123361164255345170904956503918714087129377308805952" "2214431050203554901182589644787183497642906842719134702400093278" "0814494239173096059884796511305787849234450095301248058391139327" "9162618105590009602350419720640860513115120134408189533653432486" "6212207101440105399533740733471343358302784187294870275058337555" "5654042242926944040157918088989237070084799892742908501451454489" "1112327726836783066419532353412818241252672952597492098380790192" "9474025356630904134051616131474771527802958350162614999692166771" "8930338621440576020016130531424904581415797907386349260997481020" "9388480201231314654942230279526998466217810220532898683300276290" "9235101982253367944711056030715609081723763275421234517889033478" "5183168257455287891792289450641941273985495088042104137468340976" "7264571537525433299959297577916186677311392476313721000661226132" "5953941882930001747020959951983924214061919432247806074196061321" "0056809456107725247980776292056519398102351802715749578685048811" "7840403783297413488274376762678017313598018856492162040239554477" "2682902200205668946629692298332210404846335600075545958458963222" "8765813167535760213223542475588620619868536521693202207781383214" "8494290752666819691508043400168079707356352739520471852440065477" "9819118558506434921872915439481088781499915632069962317077633963" "8817435613190341905763972389505493103362832342818949822646359556" "0281832167244575904137984013222756794978732527060740824695693383" "5869116351006915743785198415109491784909187314598564827084593923" "9805185168496098949699256391146311376549146769534052862642978212" "1185477076894719862121901385213997077603001082145496345390753066" "7147829489881485585291444354401197208056692291976417856935059939" "8894027251472817058687522127127879743834334146972278486287885163" "2056972303432332281742237513033465726853328251100870675623211960" "2978963445784853852234043030079049541978109298103053387134745051" "7368352816615810882615488381140986979094766914331203559197559651" "8914228121724146503749612865140285821200729536910870324127066394" "4068699483380852620959723042738777441355693383976920205335049663" "3913062904507750100253925258290597131563569558016819491057936379" "0217849593217252990868864586456855893891827436786529304093478246" "6626840596168752972961528246147662338693530854862817581421557052" "0689907710716865181971232687792689512866673514522417340252117279" "7813159685037284371942044301280571172992510140037611932413038677" "189525453973694165307953197296969697410619233826"; const char *len = "1111122222333334444555556666677777888899999:::::;;;;;<<<<<====>>" ">>>?????@@@@@AAAAABBBBCCCCCDDDDDEEEEEFFFFGGGGGHHHHHIIIIIJJJJJKKK" "KLLLLLMMMMMNNNNNOOOOOPPPPQQQQQRRRRRSSSSSTTTTUUUUUVVVVVWWWWWXXXXX" "YYYYZZZZ"; while(scanf("%d", &N) == 1) { pos = 0; for(i = 0; i < (N-1); i++) { pos += (len[i] - '0'); } for(i = 0;i < (len[N-1] - '0'); i++) { printf("%c", digits[pos + i]); } printf("\n"); } return 0; }