迭代器求立方根
在牛客網上找到的北航的研究生復試上機題。題目描述如下:
立方根的逼近迭代方程是 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中y0=x.求給定的x經過n次迭代后立方根的值。?
重點:1)輸入有多組數據。每組一行,輸入x n。
2)迭代n次后的立方根,double精度,保留小數點后面六位。
實現如下:
#include <iostream> #include <stdio.h> using namespace std; int main(){double a,b,x,x1,x2,x3;int n;while(cin>>x>>n){a=x;for(int i=0;i<n;i++){x1=a*2/3;x2=3*a*a;x3=x/x2;b=x1+x3;a=b;}printf("%.6f\n",a);}return 0; }注意對重點1)的理解,實現循環處理;同時對保留6位精度的處理c中處理方式見上,使用cout格式如下 #include <iostream.h> #include <iomanip.h> void main(void) { cout.setf(ios::fixed); cout<<setprecision(2)<<(float)0.1<<endl;//輸出0.10 cout.unsetf(ios::fixed); cout<<setprecision(2)<<(float)0.1<<endl; //輸出0.1 } 可以參考這個帖子:http://bbs.csdn.net/topics/320179430 點擊打開鏈接總結
- 上一篇: 初试牛客网PAT练习之数素数
- 下一篇: PAT练习之字符串处理