[蓝桥杯 2021 省 AB2] 小平方
一、题目描述
[蓝桥杯 2021 第二轮省赛 A 组 F 题(B 组 G 题)]
小平方小蓝发现,对于一个正整数 n 和一个小于 n 的正整数 v,将 v 平方后对 n 取余可能小于 n 的一半,也可能大于等于 n 的一半。请问,在 1 到 n−1 中, 有多少个数平方后除以 n 的余数小于 n 的一半。例如,当 n=4 时,1,2,3 的平方除以 4的余数都小于 4 的一半。
C++程序要求输入输出格式如下:
输入格式
输入一行包含一个整数 n 。
输出格式
输出一个整数,表示满足条件的数的数量。
二、思路
思路比较简单,但是上交代码发现并没有通过所有的评测,于是检查问题,发现对于n的一半的处理有问题,n/2是直接向下取整了,不符合题意所说的一半。
三、C++代码
#include<bits/stdc++.h>
using namespace std;
// 小平方
int main(){
int n;
cin>>n;
int i=1;
double half=n/2.0;
int number=0;
while(i<n){
if((i*i%n)<half){
number++;
}
i++;
}
cout<<number;
}
原文地址:https://blog.csdn.net/D_D_zy/article/details/136358080
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!