求解惑
查看原帖
求解惑
1271809
Oyjq2011楼主2024/8/26 19:34

为什么

#include <iostream>
#include <cmath>
using namespace std;

int main() {
	int n,c,C = 0;
	cin >> n;

	for(int a = 1;a <= n;a++) {
		for(int b = a;b <= n;b++) {
			c = sqrt(a*a+b*b);
			if((a*a+b*b == c*c) && c <= n) {
				C++;
			}
		}
	}

	cout << C;
	
	return 0;
}

能AC

#include <iostream>
#include <cmath>
using namespace std;

int main() {
	int n,c,C = 0;
	cin >> n;

	for(int a = 1;a <= n;a++) {
		for(int b = a;b <= n;b++) {
			if((a*a+b*b == sqrt(a*a+b*b)*sqrt(a*a+b*b)) && sqrt(a*a+b*b) <= n) {
				C++;
			}
		}
	}

	cout << C;
	
	return 0;
}

却WA了? 难道直接比较浮点数和整型时,浮点数没有向下取整再比较吗?

2024/8/26 19:34
加载中...