找的数学规律,,,,

P2669 [NOIP2015 普及组] 金币

花花 @ 2017-11-30 19:35:01

#include<iostream>
using namespace std;
int main()
{
    long long k,n,i;
    long long m=0;
    cin>>k;
    n=0;
    while((2*k)>=(n+n*n))
    {
        n++;
    }
    for(i=0;i<n;i++)
    {
    m+=i*i;
    }
    k=2*n*k-n*n*n+n*n;
    n=k/2+m;
    cout<<n;
    return 0;
}

by lionrenard @ 2019-08-26 19:09:06

直接模拟,好理解

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n,k,sum=0;
    cin>>k;
    for(n=1;k-n>=0;k-=n++){
        sum=sum+n*n;
    }
    cout<<sum+k*n;
}

|