为啥/2就对了
查看原帖
为啥/2就对了
1227291
zhenxiaohou楼主2025/6/27 17:06

原程序:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int x,y,z,n,m;
	m=0;
	scanf("%d",&n);
	for(int a=1;a<=n;a++){
		for(int b=1;b<=n;b++){
		    for(int c=1;c<=n;c++){
		    	x=a*a;
		    	y=b*b;
		    	z=c*c;
		    	if(x+y==z){
		    		m=m+1;
				}
			}
		}
	} 
	printf("%d",m);
	return 0;
} 

然后看了评论,发现好多人说要/2,就试了一下

#include<bits/stdc++.h>
using namespace std;
int main(){
	int x,y,z,n,m;
	m=0;
	scanf("%d",&n);
	for(int a=1;a<=n;a++){
		for(int b=1;b<=n;b++){
		    for(int c=1;c<=n;c++){
		    	x=a*a;
		    	y=b*b;
		    	z=c*c;
		    	if(x+y==z){
		    		m=m+1;
				}
			}
		}
	} 
	printf("%d",m/2);
	return 0;
} 

还真行 所以这是为什么呢?

2025/6/27 17:06
加载中...