当前位置:新励学网 > 秒知问答 > 一道超时的c问题,求大神提供处理方法

一道超时的c问题,求大神提供处理方法

发表时间:2024-07-21 01:40:39 来源:网友投稿

老大10^n在n很大的时候,比如上限100000时是个什么概念?1后边有10万个0,假设CPU的执行++的速度是10G,也就是10*10^9=10^10,则要计算完需要10^(100000-10)秒,一年才不到4*10^7,所以在宇宙湮灭之前都不要想算完啦。

当然按你的代码还不至于老是执行不完,原因是在c*=a时当n>10时会多次溢出。

得改算法:

注意到1+2+...+n=n(n+1)/2

当n=10^k时,n(n+1)/2=5*10^(k-1)*(10^k+1)

以数位的形式来看:50...050...0,即结果中的各位上只有0和5,且5只出现两次,并将0分割为两半,两半0的个数一样,都为k-1个。

因此对本题无需计算,直接输出即可,不过要注意当输入的n=0时,需要输出的是1,不满足之前讨论。

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!