一个很简单的做法

金币

http://www.nowcoder.com/questionTerminal/8f71f5670e6a45118d24d13868a2da9e

由于平方和有公式,等差数列有公式,根据规律推得:

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a=1;
    while(a*(a+1)/2<=n)
        a++;
    a--;
    cout<<a*(a+1)*(2*a+1)/6+(n-(a+1)*a/2)*(a+1)<<endl;
    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务