中级天翼
4978 勾股定理经验值:1200 时间限制:1000毫秒
题目描述 Description
所谓勾股数,是指满足形如x*x+y*y=z*z这样的(x,y,z)称为一组勾股数。
找出N(包括N)以内的勾股数。如果找不到,则输出No
输入描述 Input Description
一行:一个整数n,(0<n<5000)
输出描述 Output Description
若干行:每行一组勾股数。按第一个数从小到大输出,第一个相同则按第二数第小到大输出。
样例输入 Sample Input
5
样例输出 Sample Output
3 4 5
TLE 50
为什么啊。。。
减少for循环的次数,构造k,10分
#include<iostream>
#include<fstream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<string>
#include<iomanip>
#include<cstdlib>
#include<vector>
using namespace std;
int n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
for(int k=j+1;k<=n;k++){
if(i<=n&&j<=n&&k<=n&&i*i+j*j==k*k){
cout<<i<<" "<<j<<" "<<k<<endl;
}
}
}
}
return 0;
}
武建豪在2021-05-30 13:05:01追加了内容
人呢?!?!?!?!
武建豪在2021-05-30 14:43:02追加了内容
顶
武建豪在2021-06-02 22:32:52追加了内容
人呢?我有亿点点着急
武建豪在2021-06-04 22:11:32追加了内容
ding
武建豪在2021-06-14 22:56:15追加了内容
ding
武建豪在2021-06-15 19:19:01追加了内容
- #include<iostream>
- #include<fstream>
- #include<algorithm>
- #include<cmath>
- #include<cstdio>
- #include<cstring>
- #include<string>
- #include<iomanip>
- #include<cstdlib>
- #include<vector>
- using namespace std;
- int n;
- int main(){
- cin>>n;
- for(int i=1;i<=n;i++){
- for(int j=i+1;j<=n;j++){
- for(int k=1;k<=n;k++){
- if(i*i+j*j==k*k){
- cout<<i<<" "<<j<<" "<<k<<endl;
- }
- }
- }
- }
- return 0;
- }
-
Time Limit Exceeded:50
-
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
二个星期了!!!
-
怎么没人回答啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
武建豪在2021-06-17 10:25:31追加了内容
ding
武建豪在2021-06-19 23:21:33追加了内容
ding...
中级天翼
核心:
循环(定义 i=1;i<=n;i++)
循环(定义 j=i+1;j<=n;j++)
循环(定义 k=1;k<=n;k++)
如果(i乘i加j乘j是k乘k)
输出<<i<<" "<<j<<" "<<k<<'\n';
朱优扬在2021-05-30 12:41:13追加了内容
我*,测试数据换了……
你要是早点提交就能100了……
中级启示者
枚举z的循环不需要
for(int x=1;x<=n;x++){
for(int y=x+1;y<=n;y++){
int z=x*x+y*y;//计算z
if(pf(z)&&sqrt(z)<=n){//完全平方数且sqrt(z)<=n
输出;
}
}
}