题目链接:http://acm.swust.edu.cn/problem/0566/

Time limit(ms): 1000      Memory limit(kb): 65535
 
Description
你见过猪走路,但肯定没有开过N方数。开方运算在科学计算中非常重要.那么现在你也想来挑战一下开N方数(1<=N<=100).只不过,这次的N方数是的要求是:要求截取小数点后M位(1<=M<=8).如:2的1/10方数,截取其4位是:1.0717,而没有四舍五入成为1.0718 
输入的被开方数NUM(0<=NUM<=1000),你可以用计算器来检验你的结果是否正确,记住是截取位数,不能四舍五入!

 
Input
第一行为测试数据个数 
以后每行三个数依次为被开方数NUM,方数N,精确的小数位数M(0 =< M <= 8).

 
Output
计算出的结果,每个结果占一行

 
Sample Input
5
1000 100 8
90 17 5
30 20 7
10 10 8
29 29 4
Sample Output
1.07151930
1.30303
1.1853758
1.25892541
1.1231
 
Hint 
用牛顿切线法列个方程来解
 
 
解题思路:直接一个数学题构造方程x^n=num(x是结果,方程的解) 
     关于牛顿切线法给出两个链接:(1)http://www.doc88.com/p-406549410439.html (2)http://www.docin.com/p-115591122.html
 
那么构造f(x)=x^n-num
    f`(x)=n*x^(n-1)
    x=x0-f(x)/f`(x),化简整理可得x=num^(1/n);
 
当然值得注意的是这里是截取小数后几位,不是四舍五入,那么不能用%.f来控制,我这里采用sprintf转换为字符
 
代码如下:
 #include <iostream>
#include <cmath>
#include <cstdio>
#include <cstring>
using namespace std;
int main(){
double ans;
int x, n, t, k, i, j, len;
cin >> t;
while (t--){
char str[];
cin >> x >> n >> k;
ans = pow(x*1.0, * 1.0 / n);
//cout<<ans<<endl;
sprintf(str, "%.10lf", ans);
len = strlen(str);
//cout<<str<<endl;
for (i = ; i < len; i++){
if (str[i] == '.') {
cout << '.';
j = ;
while ((j++) < k)
cout << str[i + j];
break;
}
cout << str[i];
}
cout << endl;
}
return ;
}

不过好像我被hint坑了,貌似开n次方就直接1/n次幂~~~(就当补了下数学吧,以后高次方程会搞了,无爱了,万恶的hint~~~)

[Swust OJ 566]--开N方数(牛顿切线法解高次方程)的更多相关文章

  1. 洛谷P3285 [SCOI2014]方伯伯的OJ 动态开点平衡树

    洛谷P3285 [SCOI2014]方伯伯的OJ 动态开点平衡树 题目描述 方伯伯正在做他的 \(Oj\) .现在他在处理 \(Oj\) 上的用户排名问题. \(Oj\) 上注册了 \(n\) 个用户 ...

  2. [Swust OJ 404]--最小代价树(动态规划)

    题目链接:http://acm.swust.edu.cn/problem/code/745255/ Time limit(ms): 1000 Memory limit(kb): 65535   Des ...

  3. nyoj 773-开方数 (pow)

    773-开方数 内存限制:64MB 时间限制:1000ms 特判: No 通过数:3 提交数:8 难度:3 题目描述: 现在给你两个数 n 和 p ,让你求出 p 的开 n 次方. 输入描述: 每组数 ...

  4. SWUST OJ NBA Finals(0649)

    NBA Finals(0649) Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 404 Accepted: 128   Descri ...

  5. [Swust OJ 649]--NBA Finals(dp,后台略(hen)坑)

    题目链接:http://acm.swust.edu.cn/problem/649/ Time limit(ms): 1000 Memory limit(kb): 65535 Consider two ...

  6. hdu 质方数

    Problem Description   小明天生对数字比较敏感,3岁的时候就能背诵圆周率一百位. 现在,小明慢慢长大了,但依然很喜欢数字,最近,他迷上了质数和平方数,并且自己把质数的平方命名为“质 ...

  7. C语言实现牛顿迭代法解方程

    利用迭代算法解决问题,需要做好以下三个方面的工作: 一.确定迭代变量 在可以用迭代算法解决的问题中,我们可以确定至少存在一个可直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量. 二.建立迭 ...

  8. 基于C++的牛顿切线法演示

    牛顿切线法 中心思想: 利用目标函数二阶泰勒多项式的最优解作为函数的近似最优解.如果新的近似最优解满足计算精度,则终止计算,否则将函数在新点展开成二阶泰勒多项式,用新的泰勒多项式的最优解作为函数的近似 ...

  9. php开发面试题---php面向对象详解(对象的主要三个特性)

    php开发面试题---php面向对象详解(对象的主要三个特性) 一.总结 一句话总结: 对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为. 对象的形态:当施加那些方法是对象如何响应,颜色,尺寸 ...

随机推荐

  1. MacOS下使用VMware5 破解 安装win7 ISO 激活

    VMware5 下载 破解 以及win7 ISO版本的安装 激活VMware5 下载与破解参考方法http://www.macx.cn/thread-2060440-1-1.htmlVMware5 是 ...

  2. eclipse编译错误

    ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2 JDWP exit error AGE ...

  3. 调色板QPalette类用法详解(附实例、源码)(很清楚:窗口背景色 前景色 按钮的颜色 按钮文本的颜色 )

    http://blog.csdn.net/rl529014/article/details/51589096

  4. iOS Dev (67) 单例的实现

    iOS Dev (67) 单例的实现 博客:http://blog.csdn.net/prevention 作者:大锐哥 摘自:Learn iPhone and iPad cocos2d Game D ...

  5. LeetCode——Combinations

    Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For exampl ...

  6. JSP 9 大内置对象详解

    内置对象特点: 1.            由JSP规范提供,不用编写者实例化. 2.            通过Web容器实现和管理 3.            所有JSP页面均可使用 4.     ...

  7. uva 1561 - Cycle Game(推理)

    option=com_onlinejudge&Itemid=8&page=show_problem&problem=4336" style=""& ...

  8. Piggy-Bank (完全背包)

      Description Before ACM can do anything, a budget must be prepared and the necessary financial supp ...

  9. jquery 中多个存在依赖关系的ajax调用解决办法

    在使用ajax异步调用的时候,可能碰到同时调用多个ajax这种情况.而且多个ajax之间还存在依赖关系.这种情况怎么处理呢?   有两种办法: 一种是多个ajax嵌套调用,这时需要设置async为fa ...

  10. JDBC_批量处理语句提高处理速度

    •当需要成批插入或者更新记录时.可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理.通常情况下比单独提交处理更有效率 •JDBC的批量处理语句包括下面两个方法: –addB ...