计算机c语言编程,用简单循环和迭代法求分数序列21 32 53 85 138 13

计算机c语言编程,用简单循环和迭代法求分数序列21 32 53 85 138 13,第1张

int i,temp=0;//i为循环控制变量,变量temp中间数值传递的暂存空间

int mol=2,den=1;//mol为分子,den为分母

for(i=0;i<20;i++){

temp=mol;

mol+=den;

den=temp;

}

#include

<stdioh>

#include

<mathh>

int

main(void)

{//本程序已测试,完全可用

double

a;

printf("input

a:");

scanf("%lf",&a);

if(fabs(a)<1e-13){//需要注意为0的情况,double双精度精确到15位,这里设置下

printf("0");

return

0;

}

double

x,y;

x=a;

y=(2x/3)+(a/(3xx));

while(fabs(y-x)>0000001){

x

=

y;

y=(2x/3)+(a/(3xx));

printf("%6f

%6f\n",x,xxx);

}

}

第一个回答的同志有两个错误

1,倒数第三行while(fabs(xk2-temp)<1e-6)中的<应该改为>才对

2,没有考虑输入的数很小为0的情况

1 一般来说,迭代法的收敛结果与初值有一定关系,但这里因为函数 x=a^(1/2) 是单调的,所以这里迭代法的收敛性与初值无关。

2 这里的初值决定了迭代次数,即初值与求值的速度有关。

3 lz感兴趣的话,可以看一些“数值分析”“计算方法”有关的书籍。

#include<iostream>

#include<cmath>

using namespace std;

int main()

{

float num,x=1,tmp; //注意迭代开始时x的值为1

cout<<"输入需要求开平方的数"<<endl;

cin>>num;

do

{

tmp=x;

x=(x+num/x)/2; //迭代求根号值

}while(fabs(x-tmp)>=1e-5); //使用了fabs函数,需要加cmath头文件,注意10的高次方的表达方式

// fabs关于绝对值的函数 浮点型的

cout<<num<<' '<<x<<endl;

return 0;

}

#include <iostream>

#include <stdlibh>

using namespace std;

int func(long x)

{

cout<<x%10;

if(x>10) func(x/10);

}

int main()

{ func(234567L);

system("pause");

return 0;

}

#include<iostream>

using namespace std;

int f(int n)

{

if(n==0)return 1;

else return nf(n-1);

}

int main()

{

cout<<f(5)+f(4)+f(3)+f(2)+f(1)<<endl;

return 0;

}

以上就是关于计算机c语言编程,用简单循环和迭代法求分数序列2/1 3/2 5/3 8/5 13/8 13/全部的内容,包括:计算机c语言编程,用简单循环和迭代法求分数序列2/1 3/2 5/3 8/5 13/8 13/、c语言 用迭代法求解、编写C程序,用迭代法求x=a^(1/2)。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9472737.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存