文章目录
- 前言
- 代码
- 思路
前言
这个题非常细节。
代码
#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;int ans=0;for(int i=1;i<n;i++){int t=i*i%n;if(t*2<n){ans++;}}cout<<ans<<endl;return 0;
}
思路
#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;int ans=0;for(int i=1;i<n;i++){int t=i*i%n;if(t<n/2){ans++;}}cout<<ans<<endl;return 0;
}
直接错了,有点没想到。就是向下取整的原因,所以最好直接把除法移过去变成乘法,不用处理这个问题,把这个问题转换了一下。真是细节。