题解 | #有趣的定理#

你好,程序猿

https://ac.nowcoder.com/acm/contest/26353/A

暴力万碎

#include <bits/stdc++.h>
using namespace std;

int main(){
    long long a,b,c,n,step=0;
    cin>>n;
    for(long a=1;a<=n;a++)
    for(long b=1;b<=n;b++)
    for(long c=1;c<=n;c++)
        if(pow(a,2)+pow(b,2)==pow(c,2)&&1<=a&&a<=b&&b<=c&&c<=n) step++;
    cout<<step;
}

最优解

 #include <bits/stdc++.h>
using namespace std;

int main(){
    int n,step=0;
    cin>>n;
    for(int i=1;i<=n;i++)
        for(int j=i;j<=n;j++){
            if(sqrt(i*i+j*j)-(int)sqrt(i*i+j*j)==0&&sqrt(i*i+j*j)<=n)step++;
        }
    cout<<step;
}


全部评论

相关推荐

2 收藏 评论
分享
牛客网
牛客企业服务