题目描述
在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。
牛牛习惯用 8 位数字表示一个日期,其中,前 4 位代表年份,接下来 2 位代表月份,最后 2 位代表日期。
显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。
牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。
现在,牛牛想知道:在他指定的两个日期之间(包含这两个日期本身),有多少个真实存在的日期是回文的。
一个 8 位数字是回文的,当且仅当对于所有的 i(1≤i≤8) 从左向右数的第i个数字和第 9−i 个数字(即从右向左数的第 i 个数字)是相同的。
例如:
•对于2016年11月19日,用 8 位数字 20161119 表示,它不是回文的。
•对于2010年1月2日,用 8 位数字 20100102 表示,它是回文的。
•对于2010年10月2日,用 8 位数字 20101002 表示,它不是回文的。
输入格式
输入包括两行,每行包括一个8位数字。
第一行表示牛牛指定的起始日期date1,第二行表示牛牛指定的终止日期date2。保证date1和date2都是真实存在的日期,且年份部分一定为4位数字,且首位数字不为0。
保证date1一定不晚于date2。
输出格式
输出共一行,包含一个整数,表示在date1和date2之间,有多少个日期是回文的。
样例
输入样例
20110101 20111231
输出样例
1
算法
打表
看到这题第一眼思路就是打表
打表真香!
C++ 代码
#include <iostream> using namespace std; int date[400]; int main(){ date[1]=10011001; date[2]=10100101; date[3]=10111101; date[4]=10200201; date[5]=10211201; date[6]=10300301; date[7]=10400401; date[8]=10500501; date[9]=10600601; date[10]=10700701; date[11]=10800801; date[12]=10900901; date[13]=11011011; date[14]=11100111; date[15]=11111111; date[16]=11200211; date[17]=11211211; date[18]=11300311; date[19]=11400411; date[20]=11500511; date[21]=11600611; date[22]=11700711; date[23]=11800811; date[24]=11900911; date[25]=12011021; date[26]=12100121; date[27]=12111121; date[28]=12200221; date[29]=12211221; date[30]=12300321; date[31]=12400421; date[32]=12500521; date[33]=12600621; date[34]=12700721; date[35]=12800821; date[36]=12900921; date[37]=13011031; date[38]=13100131; date[39]=13211231; date[40]=13300331; date[41]=13500531; date[42]=13700731; date[43]=13800831; date[44]=20011002; date[45]=20100102; date[46]=20111102; date[47]=20200202; date[48]=20211202; date[49]=20300302; date[50]=20400402; date[51]=20500502; date[52]=20600602; date[53]=20700702; date[54]=20800802; date[55]=20900902; date[56]=21011012; date[57]=21100112; date[58]=21111112; date[59]=21200212; date[60]=21211212; date[61]=21300312; date[62]=21400412; date[63]=21500512; date[64]=21600612; date[65]=21700712; date[66]=21800812; date[67]=21900912; date[68]=22011022; date[69]=22100122; date[70]=22111122; date[71]=22200222; date[72]=22211222; date[73]=22300322; date[74]=22400422; date[75]=22500522; date[76]=22600622; date[77]=22700722; date[78]=22800822; date[79]=22900922; date[80]=30011003; date[81]=30100103; date[82]=30111103; date[83]=30200203; date[84]=30211203; date[85]=30300303; date[86]=30400403; date[87]=30500503; date[88]=30600603; date[89]=30700703; date[90]=30800803; date[91]=30900903; date[92]=31011013; date[93]=31100113; date[94]=31111113; date[95]=31200213; date[96]=31211213; date[97]=31300313; date[98]=31400413; date[99]=31500513; date[100]=31600613; date[101]=31700713; date[102]=31800813; date[103]=31900913; date[104]=32011023; date[105]=32100123; date[106]=32111123; date[107]=32200223; date[108]=32211223; date[109]=32300323; date[110]=32400423; date[111]=32500523; date[112]=32600623; date[113]=32700723; date[114]=32800823; date[115]=32900923; date[116]=40011004; date[117]=40100104; date[118]=40111104; date[119]=40200204; date[120]=40211204; date[121]=40300304; date[122]=40400404; date[123]=40500504; date[124]=40600604; date[125]=40700704; date[126]=40800804; date[127]=40900904; date[128]=41011014; date[129]=41100114; date[130]=41111114; date[131]=41200214; date[132]=41211214; date[133]=41300314; date[134]=41400414; date[135]=41500514; date[136]=41600614; date[137]=41700714; date[138]=41800814; date[139]=41900914; date[140]=42011024; date[141]=42100124; date[142]=42111124; date[143]=42200224; date[144]=42211224; date[145]=42300324; date[146]=42400424; date[147]=42500524; date[148]=42600624; date[149]=42700724; date[150]=42800824; date[151]=42900924; date[152]=50011005; date[153]=50100105; date[154]=50111105; date[155]=50200205; date[156]=50211205; date[157]=50300305; date[158]=50400405; date[159]=50500505; date[160]=50600605; date[161]=50700705; date[162]=50800805; date[163]=50900905; date[164]=51011015; date[165]=51100115; date[166]=51111115; date[167]=51200215; date[168]=51211215; date[169]=51300315; date[170]=51400415; date[171]=51500515; date[172]=51600615; date[173]=51700715; date[174]=51800815; date[175]=51900915; date[176]=52011025; date[177]=52100125; date[178]=52111125; date[179]=52200225; date[180]=52211225; date[181]=52300325; date[182]=52400425; date[183]=52500525; date[184]=52600625; date[185]=52700725; date[186]=52800825; date[187]=52900925; date[188]=60011006; date[189]=60100106; date[190]=60111106; date[191]=60200206; date[192]=60211206; date[193]=60300306; date[194]=60400406; date[195]=60500506; date[196]=60600606; date[197]=60700706; date[198]=60800806; date[199]=60900906; date[200]=61011016; date[201]=61100116; date[202]=61111116; date[203]=61200216; date[204]=61211216; date[205]=61300316; date[206]=61400416; date[207]=61500516; date[208]=61600616; date[209]=61700716; date[210]=61800816; date[211]=61900916; date[212]=62011026; date[213]=62100126; date[214]=62111126; date[215]=62200226; date[216]=62211226; date[217]=62300326; date[218]=62400426; date[219]=62500526; date[220]=62600626; date[221]=62700726; date[222]=62800826; date[223]=62900926; date[224]=70011007; date[225]=70100107; date[226]=70111107; date[227]=70200207; date[228]=70211207; date[229]=70300307; date[230]=70400407; date[231]=70500507; date[232]=70600607; date[233]=70700707; date[234]=70800807; date[235]=70900907; date[236]=71011017; date[237]=71100117; date[238]=71111117; date[239]=71200217; date[240]=71211217; date[241]=71300317; date[242]=71400417; date[243]=71500517; date[244]=71600617; date[245]=71700717; date[246]=71800817; date[247]=71900917; date[248]=72011027; date[249]=72100127; date[250]=72111127; date[251]=72200227; date[252]=72211227; date[253]=72300327; date[254]=72400427; date[255]=72500527; date[256]=72600627; date[257]=72700727; date[258]=72800827; date[259]=72900927; date[260]=80011008; date[261]=80100108; date[262]=80111108; date[263]=80200208; date[264]=80211208; date[265]=80300308; date[266]=80400408; date[267]=80500508; date[268]=80600608; date[269]=80700708; date[270]=80800808; date[271]=80900908; date[272]=81011018; date[273]=81100118; date[274]=81111118; date[275]=81200218; date[276]=81211218; date[277]=81300318; date[278]=81400418; date[279]=81500518; date[280]=81600618; date[281]=81700718; date[282]=81800818; date[283]=81900918; date[284]=82011028; date[285]=82100128; date[286]=82111128; date[287]=82200228; date[288]=82211228; date[289]=82300328; date[290]=82400428; date[291]=82500528; date[292]=82600628; date[293]=82700728; date[294]=82800828; date[295]=82900928; date[296]=90011009; date[297]=90100109; date[298]=90111109; date[299]=90200209; date[300]=90211209; date[301]=90300309; date[302]=90400409; date[303]=90500509; date[304]=90600609; date[305]=90700709; date[306]=90800809; date[307]=90900909; date[308]=91011019; date[309]=91100119; date[310]=91111119; date[311]=91200219; date[312]=91211219; date[313]=91300319; date[314]=91400419; date[315]=91500519; date[316]=91600619; date[317]=91700719; date[318]=91800819; date[319]=91900919; date[320]=92011029; date[321]=92100129; date[322]=92111129; date[323]=92200229; date[324]=92211229; date[325]=92300329; date[326]=92400429; date[327]=92500529; date[328]=92600629; date[329]=92700729; date[330]=92800829; date[331]=92900929; int day1,day2,ans=0; cin>>day1>>day2; for(int i=1;i<=331;i++){ if(day2>=date[i]&&day1<=date[i]) ans++; } cout<<ans<<endl; return 0; }