问题标题: 酷町堂:4978 勾股定理

0
0
已解决
卞福睿
卞福睿
中级守护
中级守护
#include<bits/stdc++.h>
using namespace std;
int n;
bool ok=false;
bool pf(int i,int j,int k)
{
    return i*i+j*j==k*k;
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        for(int j=i+1;j<=n;j++)
        {
            int k=sqrt(i*i+j*j);
            if(pf(i,j,k)&&k<=n)
            {
                cout<<i<<" "<<j<<" "<<k<<endl;
                ok=true;
            }
        }
    }
    if(ok==false)
    cout<<"No";
    return 0;
}

哪位大佬能解决一下


0
已采纳
马烨烨
马烨烨
初级守护
初级守护

是超时吗?

万能头尽量不要用

双重循环内,函数(包括自定义!)尽量不要用,容易超时;


           int z=i*i+j*j;
           if(abs(sqrt(z)-(int)(sqrt(z)))<=0.000001)
           {
               if(sqrt(z)<=n)
                   cout<<i<<" "<<j<<" "<<sqrt(z)<<endl;
           }
这是在双重循环内部的代码

我要回答