潍坊在线制作网站,临沂网站建设对实体企业,百度指数是免费的吗,深圳建设信息网站这题我中午是12点以后开始做的#xff0c;只剩下1个小时了#xff0c;12点50的时候完成了框架#xff0c;但是细节总是实现不对#xff0c;现在晚上来复盘的时候才把这题A出来了。 
但是#xff0c;就像高考的导数你整个思路都会#xff0c;你死在了求导上。。。#xf…这题我中午是12点以后开始做的只剩下1个小时了12点50的时候完成了框架但是细节总是实现不对现在晚上来复盘的时候才把这题A出来了。 
但是就像高考的导数你整个思路都会你死在了求导上。。。刚才A出来的那一刻真的快把我气哭了哈哈哈哈哈哈还不如不做出来呢 题面 分析 
众所周知蓝桥杯是数学杯。所以这题有没有什么数学方法来求解呢 
我们不妨先观察一下10-100的数据一共有5*9个 10 12 14 16 18 21 23 25 27 29 30 41 50 61 70 81 90 100-1000 101 103 105 107 109 121 141 161 181  210 212 214 216 218 230  250 270 290  一直到900多合计5*5*9个。 
同理1000-10000的区间5*5*5*9个。那么就有规律了 
现在我们回头用数学知识解释一下第一位是1-9但是接下来的每一个都只能选5个因为不是奇数就是偶数。 那么我们可以先通过n定位到ans的数量级。具体做法就是定义一个区间数组落在哪里数量级就能通过它定下来。 
定下了数量级那么我们是不是还可以进一步缩小范围确定它的第一位具体实现就是确定出这一位我们设为hhh但是实际上是hhh1 
接下来我们再用一个循环从左到右依次确定每一小位。 
为什么第一位要单独拎出来呢就是因为第一位可以选9个数但是后面的数都根据前一位数的奇偶性来判定。 我们用一个例子来说明我的代码n716 
716推出pos2那么npos3ans1000leave716-270446。此时确定ans数量级是1000 
hhh446/1253leave446%12571那么ans10003*10004000具体确定出第一位 
然后进入循环 
1.fst4npos2hhh71/252leave71%2521ans40002*hhh*pow(10,npos)4400 
但是第二位和第一位撞了所以需要加100避开ans4500 
2.fst5npos1hhh21/54leave21%51ans45002*hhh*pow(10,nops)4580 
第三位不用改变 
3.fst8npos0hhh4/14leave0,ans45802*hhh*pow(10,npos)4582 
第四位需要pow(10,pos)ans4583. 
循环结束 但是我们验证这个例子n716应该对应4581除此之外n1时ans12n11时n32。 
这就是我中午死掉的地方。 
我们n自减1就行了。 
我中午没想出来一直在改循环现在也不知道改没改对能对几个反正我做好15分全死的准备了心痛www 
Code 
代码功底比较烂有很多变量名设置需要大家自己理解求包容。 
#includeiostream
#includecmath
#define mx 1000000007
using namespace std;
long long qujian[25]{0};
long long n;
int main()
{qujian[1]45;for(int i2;i16;i){qujian[i]qujian[i-1]9*pow(5,i);}cinn;n-1;long long pos0;for(int i0;i20;i){if(nqujian[i]nqujian[i1]){posi;break;}}//coutposendl;long long leaven-qujian[pos];long long npospos1;long long anspow(10,pos1);//coutans leave nposendl;//先把开头的0-9判掉long long hhhleave/pow(5,pos1);leave%(long long)pow(5,pos1); ansans*(hhh1);//couthhh leave ans nposendl;while(npos){long long fstans/(long long)pow(10,npos)%10;//coutfstendl;--npos;hhhleave/(long long)pow(5,npos);leave%(long long)pow(5,npos);ans2*hhh*(long long)pow(10,npos); if(fst%20){//偶数 ans(long long)pow(10,npos); }//couthhh leave ansendl;}coutansendl;return 0;
}