acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • 题解

    题目解析 * 输入输出:第一行输入整数 nnn,接下来 nnn 行每行一个正整数 aia_iai ;对每个 aia_iai 判断是否能表示为两个正整数的平方和,能则输出 Yes,否则输出 No。 * 数据范围:根据 GESP 二级难度,通常 n≤100n \leq 100n≤100,ai≤104a_i \leq 10^4ai ≤104 左右(具体未明示,但双重循环可过)。 * 复杂度要求:当前解法时间复杂度 O(n⋅ai)O(n \cdot a_i)O(n⋅ai ),空间复杂度 O(1)O(1)O(1)。 * 算法知识点:暴力枚举、完全平方数、数学 思路解析 1. 数学建模:对于每个查询值 xxx,需判定是否存在正整数对 (i,j)(i, j)(i,j) 满足 i2+j2=xi^2 + j^2 = xi2+j2=x。注意 i,j≥1i, j \geq 1i,j≥1(区别于非负整数)。 2. 枚举范围确定:由于 i2≤xi^2 \leq xi2≤x 且 j2≤xj^2 \leq xj2≤x,可知 i,j∈[1,x]i, j \in [1, \sqrt{x}]i,j∈[1,x ]。 3. 双重循环验证:外层枚举 iii,内层枚举 jjj,计算平方和。一旦发现 i2+j2=xi^2 + j^2 = xi2+j2=x 立即返回 true;若全部枚举完毕未找到,返回 false。 4. 关键细节:循环条件使用 pow(i, 2) <= x 控制上限,也可写作 i * i <= x(后者避免浮点精度风险)。 完整代码

    userId_undefined
    庄莫野JongMoye
    24阅读
    0回复
    0点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页