su180 @ 2023-10-31 21:45:16
大佬们,我这么写输入6可以,1000就不对了,不知道为什么,球球了
#include<stdio.h>
int main ()
{
int k,n,s=0,c=0,i,x;
scanf("%d",&k);
for(n=1;n<=1e7;n++){
s+=n*n;
if(s>=k){
break;
}
}
for(i=1;i<=(n-1);i++){
c+=i*i;
}
x=n*(n-1)/2;
c+=(k-x)*n;
printf("%d",c);
return 0;
}
by chillLee @ 2023-10-31 22:24:40
您的算法有问题。
具体而言,第一个 for(n=1;n<=1000;n++)
中,您的目的应该是求得能够完全取得
但是 s+=n*n
显然是金币数和天数弄混了。
所以将 s+=n*n
更改为 s+=n
即可通过。
有用的话点个关注?