可惜需要点时间准备这些字符串的初始化内容,错过提交时间截止点了,无法验证结果是不是能节省些内存。把常量字符串放在只读数据段。
#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;
}