随便-2046
幼苗
共回答了20个问题采纳率:75% 举报
看了楼上几位的计算机算法,思路都很正确,但是,我个人有点计算机解题的建议.希望对大家能有所帮助.
首先,假设 所用的程序能够进行大数算法:
假如要计算: 50^50
通常 = 50*50*50*50*50*50*50*50* .
实际上:
50^50 = 2500^25 = 2500^(24*1) = 2500^24 * 2500
= 6250000^12 * 2500
= .
意思就是 如果是 A^B B = 2K 那么 就计算 (A^2)^K
否则的话,就拆开
这样的话计算的次数可以大大减少
如 8^8=8*8*8*8*8*8*8*8
而实际上只要计算
a = 8*8
b = a*a
c = b*b
理想的情况下是 O( Log(N) )的数量级
C语言解题的话涉及到大数算法.
1年前
7