题解 | 金币
金币
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);
}
韶音科技公司氛围 643人发布
查看10道真题和解析