基础题。求 1 + 3 + 6 + ... + i(i +1)/2 的和,求和公式为 N * (N+1) * (N+2) / 6,对其取 10 的对数,确定 E 后面的数字。
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
int N;
while (cin >> N)
{
if (N == 0)
break;
double sum = 1.0 * N * (N + 1) * (N + 2) / 6;
int num = log10(sum);
sum /= pow(10, num);
cout << fixed << setprecision(2) << sum << "E" << num << endl;
}
return 0;
}
继续加油。