我在UVa上做problem。问题陈述如下:
我们必须找到数p的第n个根,并且存在整数k,使得k ^ n = p。所以基本上我们必须找到整数k。
约束:
p <10 ^ 101 ,n <200,k <10 ^ 9。 所有变量都是整数和正数。
c中问题的AC解决方案只是计算,
pow(p,1/n);
我知道double可以保存数据到e308,但据我所知,精确到15位小数。
所以我的问题是为什么上面的解决方案有效,是否会出现任何精度错误?
答案 0 :(得分:3)
但如果你看其他约束 - k限制为10 ^ 9。需要30位无符号类型。双尾数的尾数可以很容易地实现。
答案 1 :(得分:0)
提示:问题陈述需要多少小数位?