杭电OJ 1178(C++)

基础题。求 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;
}

继续加油。

发布了138 篇原创文章 · 获赞 1 · 访问量 7021

猜你喜欢

转载自blog.csdn.net/Intelligence1028/article/details/104562773