- 题解
#LQSS1206. 小平方题解
- 2022-11-25 23:31:14 @
思路
先用一个变量ans存储答案,然后从1 到 n − 1 枚举,对于一个数x,如果存在x平方后除以n的余数小于 n 的一半则 ans++
题目存在的一些坑
- 根据题目的意思n的一半有可能为浮点数,所以将的结果转化为浮点类型
- 补充知识:C/C++及Java中当除法除不尽时会向0取整,而Python3中用 / 除不尽时会有小数,而用 // 会向下取整 比如C/C++中,,python3中,
- 当n为1时,没有满足条件的数
一些细节
- 题目不会爆int,开int类型的变量足够
- 时间复杂度:
参考代码
#include<iostream>
using namespace std;
int main()
{
int n, ans = 0;
cin >> n;
double x = n / 2.0;
for(int i = 1; i < n; i++)
if((i * i % n) < x)
ans++;
cout << ans << endl;
return 0;
}
1 条评论
-
ww20020402 LV 6 SU @ 2022-12-1 19:52:20
补充:所以就是因为除法存在误差所以推荐大家使用乘法来代替,如题目中 x平方后除以n的余数小于 n就可以两边同时*2
👍 1
- 1