2.请补充例5. 7程序,分别统计当“fabs(t)>= le- 6”和“fabs(t)> = le- 8”时执行循环体的次数。
5.7算法思想:
1.i=2i-1
2.term=(-1)^(i-1)(1/i)
3.pi=pi+term
代码具体实现:
#include<stdio.h>
#include<math.h>
int main(int argc, char const *argv[])
{
double estimatePi1();
double estimatePi2();
estimatePi1();
estimatePi2();
return 0;
}
double estimatePi1()
{
double pi=0,term=1;
int n=1,count=0;
for (double i = 1; fabs(term)>0.000001; i+=2,n++)
{
term=pow(-1,n-1)*(1/i);
pi=pi+term;
count++;
}
printf("the first method10^(-6):%lf %lf %d\n",pi,4*pi,count);
}
double estimatePi2()
{
double pi=0,term=1;
int n=1,count=0;
for (double i = 1; fabs(term)>0.00000001; i+=2,n++)
{
term=pow(-1,n-1)*(1/i);
pi=pi+term;
count++;
}
printf("the second method10^(-8):%lf %lf %d\n",pi,4*pi,count);
}
结果截图:
总结:
- 弄清楚数学模型后用C语言比较容易实现
3.输入两个正整数m,n,求其最大公约数和最小公倍数。
算法思路:
最大公约数:
1.将i=min(m,n),if(m%i0&&n%i0)输出i;else i–;
最小公倍数:
1.i=max(m,n),if(i%m0&&i%n0)输出i;else i++;
算法具体实现:
#include<stdio.h>
int main(int argc, char const *argv[])
{
int commonMutiple(int m,int n);
int highestCommonFactor(int m,int n);
int m,n;
scanf("%d%d",&m,&n);
commonMutiple(m,n);
highestCommonFactor(m,n);
return 0;
}
int commonMutiple(int m,int