BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #93930同步于 2016/11/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

大一萌新,这次oj好难完全不会求教

p12345
2016/11/19镜像同步36 回复
求大神!!刚学到函数…
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
shan10211865机器人#1 · 2016/11/19
大一的小朋友做什么oj,抓紧时间去玩呀
andlase机器人#2 · 2016/11/19
你就编啊
nuanyangyang机器人#3 · 2016/11/19
大一的小朋友做什么oj,抓紧时间去玩呀
ywg557机器人#4 · 2016/11/19
大一的小朋友做什么oj,抓紧时间去玩呀
sungxuyan机器人#5 · 2016/11/19
大一的小朋友做什么oj,抓紧时间去玩呀
CURElyreas机器人#6 · 2016/11/19
大一的小朋友做什么oj,抓紧时间去玩呀
DAZONGSHI机器人#7 · 2016/11/19
Scala: ``` //计算sin x import Math._ def fac(n :Int,r : Int = 1) : Int = { if(n == 1) r else fac(n - 1,n * r) } def sin(x : Double) : Double = { var result : Double = 0 var n : Int = 1 var flag = true while(flag) { result = result + pow(-1,n + 1) * pow(x,2 * n - 1) / fac(2 * n -1) // println(pow(x,2 * n - 1) / fac(2 * n - 1)) n = n + 1 if((pow(x,2 * n - 1) / fac(2 * n - 1)) < pow(10,-7) ) { if (x >= 0) flag = false } else { if (x < 0) flag = false } } result } printf("测试:sin (Pi / 2) =%.6f\n",sin(PI / 2)) var x : Double = 0 try { while (true) { x = readDouble() printf("%.6f\n",sin(x)) } } catch { case other => println("There are some errers") } ``` C++: ``` #include <iostream> #include <cmath> #include <cstdio> using std::cin;using std::cout;using std::endl; int fac(int,int); double pow_diy(double ,int ,double ); double sin(double); int main(void) { cout << "测试:sin (Pi / 2) =" << sin(M_PI/2) << endl ; double p = 0; while(cin >> p) { printf("%.6f\n",sin(p)); } return 0; } int fac(int n,int r)/*r = 1*/ { if (n == 1) { return r; } else { return fac(n - 1,n * r); } } double pow_diy(double x,int n,double r) /*r = 1*/{ if( n == 0) { return r; } else if ( n < 0) { return pow_diy(x,n + 1, r / x); } else { return pow_diy(x,n - 1,r * x); } } double sin(double x) { double result = 0; int n = 1; while(1) { result = result + pow_diy(-1,n + 1,1) * pow_diy(x,2 * n - 1,1) / fac(2 * n -1,1); // printf("%f\n",pow_diy(x,2 * n - 1,1) / fac(2 * n - 1,1)); // cout << pow_diy(x,2 * n - 1,1) << endl ; ++ n; if((pow_diy(x,2 * n - 1,1) / fac(2 * n - 1,1)) < pow_diy(10,-7,1) ) { if (x >= 0) break; } else { if (x < 0) break; } } return result; } ``` 但是最后的精度与例子不一样,我也不知怎么回事。。
awpboxer机器人#8 · 2016/11/19
用递归写啊。 发自「贵邮」
welove机器人#9 · 2016/11/19
题目中最后多项式的最后一项是给出了一般形式,所以不用++n之后再和1e-7比较。只要让刚刚result加的最后一项的绝对值和它比较即可。 我也没写感觉可能是这个原因