继续举报
  • 板块灌水区
  • 楼主Yxy7952
  • 当前回复19
  • 已保存回复19
  • 发布时间2024/9/26 17:03
  • 上次更新2024/9/26 20:24:13
查看原帖
继续举报
936717
Yxy7952楼主2024/9/26 17:03

如果有人做过这道题可以看一下

他的

我的

他以前的代码

#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

2024/9/26 17:03
加载中...