北大2000题

来源:互联网 发布:pc离线翻译软件 编辑:程序博客网 时间:2024/05/17 06:40

题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2000

这道题其实很简单,只要根据自然数的前n项和公式和自然数平方的前n项和公式就可以算出来。

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
 freopen("in.txt","r",stdin);

 int N,n,r;
 while(cin >> N && N)
 {
  n = (sqrt(1.0+8*N) - 1) / 2;
  r = (N - (1+n)*n/2)*(n+1);
  r += n*(n+1)*(2*n+1)/6;
  cout << N << ' ' << r << endl;
 }
 return 0;
}