3145779708nb @ 2022-10-24 23:59:35
int main()
{
int i=1 ; int sum;int k;int m,j=0;
scanf("%d",&k);
while(i*(i+1)/2<k)
{
i++;
}
if(i*(i+1)/2==k)
{
for(m=1;m<=i;m++)
{
j=j+m*m;
}
sum=j;}
if(i*(i+1)/2>k)
{
for(m=1;m<=i-1;m++)
{
j=j+m*m;
}
sum=j+(i*(i+1)/2-k)*i;
}
printf("%d",sum);
return 0;
}
by Pjcgs @ 2022-11-27 15:27:29
参考我的,无须那么复杂
#include<iostream>
using namespace std;
int main()
{
int i,k,s=0,n=0,m;
cin>>k;
for(i=1;i<=k;i++)
{
s+=i*i;
n+=i;
if(n>=k) break;
}
if(n!=k) s-=(n-k)*i;
cout<<s;
return 0;
}