链接:今天星期日
数学题,数列求和
an = n*(n+1)/2 = (n^2 + n)/2;
2*sum1 = 1^2 + 2^2 + 3^2 + 4^2 + 5^2 +....+ n^2 = n*(n+1)*(2*n+1)/6
2*sum2 = 1 + 2 + 3 + 4 + 5 + 6 + ....+ n = n*(n+1)/2
相加,2 * sum = n*(n+1)*(n+2)/3
所以,sum = n*(n+1)*(n+2)/6;
取对数,即可。。。
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
double n;
while(scanf("%lf", &n) != EOF && n)
{
double x = log10(n/6.0) + log10(1.0* (n+1)) + log10(1.0*(n + 2));
int zhi = (int) x;
double base = pow(10.0, x-zhi);
printf("%.2lfE%d\n", base, zhi);
}
return 0;
}