如果有人做过这道题可以看一下
他以前的代码
#include<bits/stdc++.h>
using namespace std;
long long n,k,a[700000],sum=0,b[700000];
int main(){
cin>>n>>k;
k--;
for(int i=1;i<=n;i++)a[i]=i;
for(int i=1;i<=n;i++)b[i]=b[i-1]+a[i];
for(int i=k;i<=n;i++)
{
double x=b[i]-b[i-k-1];
double ttttt=sqrt(x);
if((int)ttttt==ttttt)sum++;
}
cout<<sum;
return 0;
}
现在
#include<bits/stdc++.h>
using namespace std;
int n,k,ans=0;
int main(){
ios::sync_with_stdio(0);
cin>>n>>k;
int j=0,s=0,c=1;
for(int i=1;i<=n;i++){
j++;
if(j>k) s-=c,c++,j--;
s+=i;
if(j==k){
double a=sqrt(s);
int b=a;
if(b*b==s) ans++;
}
}
cout<<ans;
return 0;
}
@Goodans