原程序:
#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;
}
还真行
所以这是为什么呢?