c - 从 c 中的无限级数计算 的值
问题描述
我正在尝试制作一个 C 程序来计算Pi
无限级数(又名莱布尼茨级数)的值,并将其显示给用户。我的问题是,我需要显示一个特殊的消息,当程序点击第一个3.14
和第一个时出现3.141
。3.14
该特殊消息应包括数字变为和的循环迭代3.141
。我并不懒惰,所以找到了一种制作无限系列的方法,但第二部分我想不通,那么我应该在我的代码中添加什么以使其显示特殊消息?
#include <stdio.h>
int main(void) {
int i, den; // denominator and counter
double pi = 4;
for (i = 0; i < 10000; i++) {
den = i * 2 + 3;
// (4 - 4/3 + 4/5 -4/7 + 4/9 -......)
if (i % 2 == 0) {
pi = pi - (4.0 / den);
}
else {
pi = pi + (4.0 / den);
}
printf("pi = %lf\n", pi);
}
}
解决方案
这是一个可能的解决方案:
#include<stdio.h>
#include <math.h>
int
main (void)
{
int i, den; //denominator and counter
int prec = 0;
double pi = 4;
for (i = 0; i < 10000; i++)
{
den = i * 2 + 3;
//(4 - 4/3 + 4/5 -4/7 + 4/9 -......)
if (i % 2 == 0)
pi -= 4.0 / den;
else
pi += 4.0 / den;
//printf ("pi = %lf\n", pi);
if (prec < 1 && trunc (100 * pi) == 314)
{
printf ("Found 3.14 at iteration %d\n", i);
prec++;
}
if (prec < 2 && (int)trunc (1000 * pi) == 3141)
{
printf ("Found 3.141 at iteration %d\n", i);
prec++;
}
}
}
输出是:
pi = 2.666667
pi = 3.466667
pi = 2.895238
...
pi = 3.150140
pi = 3.133118
pi = 3.149996
Found 3.14 at iteration 117
...
pi = 3.141000
pi = 3.142185
pi = 3.141000
Found 3.141 at iteration 1686
...
推荐阅读
- java - 使用 StAX 验证 XML 时尝试从自定义错误处理程序抛出自定义异常时出现问题
- file - 有没有办法与 ssh 云终端共享文件?
- wordpress - wordpress 用户注册表格或联系表格 7
- go - 从 url 获取空参数
- r - 层次聚类 - 查找每个组中的观察值
- python-3.6 - ParseError:第 5 行的错误输入
- c# - 错误:“找不到从 dbcontext 派生的可构造类型”(Visual Studio 2019 和 EF 6 工具)
- php - 旋转jpeg的PHP函数只工作一次
- python - 在 python 中使用 read_sql 时的数据类型转换
- sql - 具有多列的表中每组的第一个非空值