有无大佬帮忙看看为什么不能用(int)直接舍去小数部分
查看原帖
有无大佬帮忙看看为什么不能用(int)直接舍去小数部分
1646987
limyIAM楼主2025/1/18 20:06

把if((i*i)%n<a)这一句的a改成n/2.0就对了,但为什么我前面算a的时候加个(int)就不对,这两种方法目的不都是舍去小数部分吗

#include<stdio.h>
int main(){
	int i,count=0,n,a;
	scanf("%d",&n);
	a=(int)(n/2);
	for(i=1;i<=n-1;i++)
		if((i*i)%n<a)
			count++;

	printf("%d\n",count);
}
2025/1/18 20:06
加载中...