本文共 641 字,大约阅读时间需要 2 分钟。
#include#include #include #include #include using namespace std;int fun(int n) { int ans = 0; while (n) { n /= 2; ans++; } return ans;}int main() { int n; int m = 3; scanf("%d", &n); int k = fun(n); // 计算n的二进制位数 int now = n >> ((k - 1) * (m - 1) / m); int last; do { last = now; now = (last * (m - 1) + n / pow(last, m - 1)) / m; } while (now < last); printf("%d\n", last); return 0;}
以上代码展示了一个读取整数n并计算其开m次根的程序,其中m设定为3。程序首先通过fun函数计算n的二进制位数k。然后通过迭代方法逐步逼近n的开m次根。最后输出近似值。
转载地址:http://enqp.baihongyu.com/