[信息与未来 2015] 连续数的和
题目描述
给出两个整数 nnn 和 kkk,求出 1∼n1\sim n1∼n 中连续 kkk 个数的和为完全平方数的个数。
输入格式
一行两个整数 n,kn,kn,k。
输出格式
一行一个整数,即 1∼n1\sim n1∼n 中连续 kkk 个数的和为平方数的个数。
样例 #1
样例输入 #1
10 3
样例输出 #1
1
提示
样例解释
在 1∼101\sim101∼10 中,连续 333 个数的和有:
- 1+2+3=61+2+3=61+2+3=6;
- 2+3+4=9=322+3+4=9=3^22+3+4=9=32;
- 3+4+5=123+4+5=123+4+5=12;
- 4+5+6=154+5+6=154+5+6=15;
- 5+6+7=185+6+7=185+6+7=18;
- 6+7+8=216+7+8=216+7+8=21;
- 7+8+9=247+8+9=247+8+9=24;
- 8+9+10=278+9+10=278+9+10=27。
故只有 111 个。
数据范围
2≤n≤7×104,1≤k≤n2\le n\le 7\times 10^4,1\le k\le n2≤n≤7×104,1≤k≤n。
C++实现
#include
#include<math.h>
using namespace std;
int main(){
int n,k;
cin>>n>>k;
int ans=0,sum=0;
for(int i=1;i<=n-2;i++){
sum=i+(i+1)+(i+2);
int a=sqrt(sum);
if(a*a==sum){
ans++;
}
}
cout<<ans;
return 0;
}
后续
接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容