题解 | 金币

金币

https://www.nowcoder.com/practice/8f71f5670e6a45118d24d13868a2da9e

#include <stdio.h>
#include <math.h>
int main() 
{
int n;
long sum=0;
long sum1=0;
int k;
scanf("%d",&k);
int d=0;


double x=1+8*k;
n=(-1+sqrt(x))/2.0;
int p;
 p=sqrt(x);

if(p*p==x)
{
    for(int i=1;i<=n;i++)
    {
        sum+=i*i;
    }
}
else 
{while(p*p!=x)
{
    k--;
     x=1+8*k;
    
    p=sqrt(x);
    d++;
}
for(int i=1;i<=n;i++)
    {
        sum1+=i*i;
    }
    sum=sum1+d*(n+1);
}
printf("%ld",sum);



}

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

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