0
0
已采纳
汪宇航
新手启示者
新手启示者
此题用双重循环i和j
i:1~n
j:i+1~n
在双重循环里定义一个k:
int k=sqrt(i*i+j*j);
最后if:
if(k*k==i*i+j*j&&k<=n){
cout<<i<<' '<<j<<' '<<k<<endl;
}
当然,因为没有输出No
所一在循环外定义一个bool x;
然后在循环中的if里的输出加一个:
x=1;
也就是:
if(k*k==i*i+j*j){
cout<<i<<' '<<j<<' '<<k;
x=1;
}
懂了吗?
不懂得话给你双重循环:
最后if(!y)cout<<"No";
注意:要加#pragma GCC optimize(3)!否则会超时!
0
周琪岳
资深光能
资深光能
三种:
1)打表 同意杜承俊
2)双重循环+sqrt+O(3)+死卡常(快读+快写+registerint+...)
3)双重循环+根号预处理,由于sqrt开销极大,可以用桶数组解决(没试过,但应该能过)
0