藍橋杯第五屆校內選拔賽2 3【浮點數操作】
阿新 • • 發佈:2019-02-03
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;
}