航电oj:测试你是否和LTC水平一样高
#题目描述
#这个题看上去简单,3个循环来就可以写出来 但是你又真的会3个循环的写上去吗
#o(n 3)太大了 我还想这有没有o(n 2)的方法 浪费了时间
#可能唯一的考点就是 循环改成99?(这也是改进吗??)
#知识点
细心
#代码
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<stdio.h>
using namespace std;
int n,ans;
int main()
{
while(scanf("%d",&n)!=EOF)
{
ans = 0;
for(int i=1;i<=50;i++)
{
for(int j=1;j<=99;j++)
{
for(int k =1;k<=99;k++)
{
if(i*i + j*j + k*k == n)
{
cout << i <<" " <<j<<" " <<k<<endl;
ans = 1;
break;
}
}
if(ans)
break;
}
if(ans)
break;
}
}
return 0 ;
}
#总结
看上去很蠢的题 就蠢一次 就暴力法一次 用不掉多少时间的