
数学-快速幂
文章平均质量分 54
Kim0403
这个作者很懒,什么都没留下…
展开
-
Astar Round2A 1001 ALL X
全是由数字x组成的m位数可表示为(10m-1)/9*x。 则判断 (10m-1)/9*x%k == c 的真假可转化为判断 (10m-1)*x%(9*k) == 9*c 的真假。 (对于加减乘运算,取模可以移动,对于除法不可行。但此处 10m-1 表示有m个9组成的数, 一定可以整除9,故可将9和k放在一起当模数)。接下来用快速幂就可以了。 比赛时,一直想着用大数模板………原创 2016-06-11 17:42:40 · 371 阅读 · 0 评论 -
LightOJ 1282
后三位快速幂模板,前三位有技巧可循。 补充:使用fmod(a, 1)表示求浮点型数a的小数部分。如:fmod(f,(int)f)即可得到小数点后的部分。 求n^k的前三位: n可以写成10^a(a为小数)的形式。因此原式=10^(ak)。 而ak可以写成x+y,其中x为ak的整数部分,y为ak的小数部分,所以x决定了位数,y决定了值。 而n=10^a => a=log10(n),fmod原创 2017-08-21 21:40:07 · 448 阅读 · 0 评论