1 条题解
-
0
思路分析
1. 任务拆解:
- 找到所有四位数的平方数
- 检查每个平方数是否满足目击者描述的特征:
- 前两位数字相同(千位=百位)
- 后两位数字相同(个位=十位)
- 前两位与后两位不同(千位≠个位)
2. 关键点分析:
- 四位数的平方根范围:32到99(32²=1024,99²=9801)
- 从最小的四位数平方根开始遍历
- 分离四位数的各个数位
- 检查三个条件必须同时满足
3. 步骤规划:
- 从sqrt(1000)≈32开始遍历整数n
- 计算num = n²
- 分离num的个位、十位、百位、千位
- 检查三个条件:千位=百位 且 个位=十位 且 千位≠个位
- 找到第一个满足条件的数就输出
4. 代码对应:
int n=sqrt(1000);→ 从四位平方数的最小平方根开始while(true)→ 循环查找num=n*n;→ 计算平方数g=num%10;→ 获取个位数字s=num/10%10;→ 获取十位数字b=num/100%10;→ 获取百位数字q=num/1000;→ 获取千位数字if(g==s&&b==q&&q!=g)→ 检查三个条件cout<<num; break;→ 输出结果并结束
- 1
信息
- ID
- 1327
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- (无)
- 递交数
- 73
- 已通过
- 38
- 上传者