1/1 + 1/2 + 1/3 + 1/4 + … 在数学上称为调和级数。
它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。
但是,它发散的很慢:
前1项和达到 1.0
前4项和才超过 2.0
前83项的和才超过 5.0
那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?
请填写这个整数。
注意:只需要填写一个整数,不要填写任何多余的内容。比如说明文字。
开始 INF 定义为1E-5导致结果不对,应该精度更高。
#include<iostream>
using namespace std;
#define INF 1e-10
#include<stdio.h>
int main()
{
double n=0;
long i=1;
for(i = 1;(n-15.0)<=INF;i++)// for(i = 1;n<=15.0;i++)也可以
{
n+=1.0/i;
}
i--;
cout<<i<<endl;
return 0;
}
如果x的x次幂结果为10(参见【图1.png】),你能计算出x的近似值吗?
显然,这个值是介于2和3之间的一个数字。
请把x的值计算到小数后6位(四舍五入),并填写这个小数值。
注意:只填写一个小数,不要写任何多余的符号或说明。
答案是2.506184
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
#define INF 1E-20
int main()
{
double i,result = 0;
for(i = 2.0000001;(result-10)<=INF;i = i+0.0000001)
{
result = pow(i,i);
}
printf("%.6f",i);
return 0;
}