牛顿迭代法求方程根:
解题思路:输入a,b,c,d,定义变量储存f(x0)和f’(x0),给x0取一个在1附近的初值,利用do while语句来实现条件,当符合结束条件时输出x。
代码:
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
double qiu(int a,int b,int c,int d)//设计函数求出x的值
{
double x0,x=1.5,f1,f2;
do
{
x0=x;
f1=a*x0*x0*x0+b*x0*x0+c*x0+d;
f2=3*a*x0*x0+2*b+x0+c;
x=x0-f1/f2;
}while(abs(x-x0)>=1e-5);
return x;
}
int main()
{
int a,b,c,d;
cin>>a>>b>>c>>d;
double x=qiu(a,b,c,d);
cout<<"所求方程的根为x=:"<<x<<endl;
return 0;
}
该题体会:不是所有时候都用while循环,有时候根据题意使用do while循环可以取得更好的效果
最佳存款方案:
假设银行一年整存零取的月息为0.63%.现在某人手中有一笔钱,他打算在今后的5年中的每年年底取出1000元,到第5年刚好取完,请算出他存钱应存入多少。
由题意分析可得:
解题思路:利用for循环计算每一年年初存款
代码:
#include<iostream>
using namespace std;
int main()
{
int i;
double y=0.0;
for(i=0;i<5;i++)
{
y=(y+1000)/(1+12*0.0063);
}
cout<<"应存入的钱数为:"<<y<<endl;
return 0;
}
标签:方程,int,double,牛顿,while,迭代法,include,x0 From: https://www.cnblogs.com/zljzy/p/17309329.html