c语言开根函数例题 c语言数学函数开根号

C语言编程求c=sqrt(a*b),d=sqrt(a*c),d2=sqrt(c*b),即新生成的数和前后数开根,依次类推n次先把数学问题描述清楚,你里边有 n 吗? 你求谁?
“新生成的数和前后数开根” 这什么意思呀? 和你前边 算式描述的一致吗?
a1
b9
csqrt(1*9)
d1d2
sqrt(c*a)sqrt(c*b)
d3d4
【c语言开根函数例题 c语言数学函数开根号】sqrt(d2*a)sqrt(d3*b)
d5d6
sqrt(d4*a)sqrt(d5*b)
****
d(2n+1)d(2n+2)
sqrt(d2n * a)sqrt(d(2n+1) * b)
是不是这样的
========
#include math.h
#include iostream.h
double A;
double B;
double fun(int n,double * arr)
{
double an;
double E;
int i=1;
while(i=n){
E=(i%2)?A;B;
arr[i]=sqrt(arr[i-1]*E]);
i++;
}
return arr[n];
}
int man()
{
int n;
cinAB;
cinn;
double *D;
D=new double[n+1];
D[0]=sqrt(A*B);// C=sqrt(A*B)
fun(n,Arr);
int m=0;
do {
coutD[m]endl;m++;
}while(m=n);
}
如果 你用的 是 C 编译 器 只需要把
#include iostream.h改成#include stdio.h
输入输出 cin cout 改用 scanf 和printf
============================================
你的问题出在数学描述上,只要能把数学模型描述清楚实现起来很容易 。
你补充描述中 d3=sqrt(a*d1),d4=sqrt(d1*c),d5=sqrt(c*d2),d6=aqrt(d2*b) 还是没有看出规律 有没有打错?
看是不是这样:
a1= d(-2)
b9= d(-1)
csqrt(1*9)= d0
d1d2k=0
sqrt(d0*d(-2))sqrt(d0*d(-1))
d3d4k=1
sqrt(d1*d(-1))sqrt(d1*d0)
d5d6k=2
sqrt(d2*d0)sqrt(d2*d1)
d7d8k=3
sqrt(d3*d1)sqrt(d3*d2)
***
d(2k+1)d(2k+2)k
sqrt(dk * d(k-2))sqrt(dk * d(k-1))
是不是这样的
========================================================
终于搞明白你的意思了
下面的程序通过了测试
运行结果::
please input a , bn :1 100 3
01
31.77828
23.16228
35.62341
110
317.7828
231.6228
356.2341
0100
说明
a--0b--0初始端点
c--1第一次插值点
d--2第二次插值点
e--3第三次插值点
f--
...
#include iostream.h
#include math.h
class List {//用链表数据结构来实现
public:
float data;//节点的值
int lev;//节点的级别
List * next;
List * prev;
List(){next=NULL;prev=NULL;lev=0;};
List(float a,int m){data=https://www.04ip.com/post/a;next=NULL;prev=NULL;lev=m;}
void setdata(float a){data=https://www.04ip.com/post/a;};
void insert(List * nod);//链表插入节点
void add(List *nod);//添加节点
};
void List::add(List * nod)
{
List *p=this;
while((p-next)!=NULL){
p=p-next;
}
p-next=nod;
nod-prev=p;
}
void List::insert(List *nod)
{
List * p;
p=next;
next=nod;
nod-prev=this;
List * p1=nod;
while((p1-next)!=NULL){
p1=p1-next;
}
p1-next=p;
}
int main()
{
float a,b;
int m,n;
cout"please input a , bn :";
cinabn;
List * list,* tmp,* p,*q;
list= new List(a,0);
tmp = new List(b,0);
list-add(tmp);
m=1;
while(m=n){//第 m 次 插值
p=list;
while((p-next)!=NULL){//连中每两个节点之间插入一个节点
//值为前后两节点积平方根
tmp=new List(sqrt((p-data)*(p-next-data)),m);
//申请节点,计算节点值
q=p-next;;
p-insert(tmp); //插入节点
p=q;
}
m++;//下一次
}
p=list;
while(p){
coutp-lev"\t"p-dataendl;

推荐阅读